code: def test_print_table_max_precision(self):
      rows = (
          ("1.745", 1.745, 1.72),
          ("11.123456", 11.123456, 5.10),
          ("0", 0, 0.10),
      )
  
      column_names = [
          "text_number",
          "real_long_number",
          "real_short_number",
      ]
      column_types = [
          self.text_type,
          self.number_type,
          self.number_type,
      ]
      table = Table(rows, column_names, column_types)
  
      output = StringIO()
      table.print_table(output=output, max_precision=2)
      lines = output.getvalue().split("\n")
  
      # Text shouldn't be affected
      self.assertIn(" 1.745 ", lines[2])
      self.assertIn(" 11.123456 ", lines[3])
      self.assertIn(" 0 ", lines[4])
      # Test real precision above max
      self.assertIn(" 1" + get_decimal_symbol() + "74… ", lines[2])
      self.assertIn(" 11" + get_decimal_symbol() + "12… ", lines[3])
      self.assertIn(" 0" + get_decimal_symbol() + "00… ", lines[4])
      # Test real precision below max
      self.assertIn(" 1" + get_decimal_symbol() + "72 ", lines[2])
      self.assertIn(" 5" + get_decimal_symbol() + "10 ", lines[3])
      self.assertIn(" 0" + get_decimal_symbol() + "10 ", lines[4])
  
file_path: agate/tests/test_table/test_print_table.py
imports: from io import StringIO
  from babel.numbers import get_decimal_symbol
  from agate import Table
  from agate.data_types import Number, Text
  from agate.testcase import AgateTestCase
label_desc: Use image node_id 5 for calling the TestPrintTable obj's underlying member method code with example usage: obj.test_print_table_max_precision() without return types