code: def test_table_properties() -> None:
      """Test `TableProperties` initialization.
  
      This test case asserts that the conversion from the `column_props` argument (which is a list) to
      `self.columns` (which is a dict) implemented by `TableProperties.__post_init__` works as intended.
      """
      table = SqlTable.from_string("db.schema.table")
      col_props = [
          ColumnProperties(
              column=SqlColumn(table=table, column_name="column1"),
              type=InferenceColumnType.INTEGER,
              row_count=1000,
              distinct_row_count=1000,
              is_nullable=False,
              null_count=0,
              min_value=0,
              max_value=999,
          ),
          ColumnProperties(
              column=SqlColumn(table=table, column_name="column2"),
              type=InferenceColumnType.FLOAT,
              row_count=2000,
              distinct_row_count=1000,
              is_nullable=True,
              null_count=10,
              min_value=0,
              max_value=1000,
          ),
      ]
  
      table_props = TableProperties(table=table, column_props=col_props)
  
      assert table_props.columns == {
          col_props[0].column: col_props[0],
          col_props[1].column: col_props[1],
      }
  
imports: from __future__ import annotations
  from metricflow.dataflow.sql_column import SqlColumn
  from metricflow.dataflow.sql_table import SqlTable
  from metricflow.inference.context.data_warehouse import ColumnProperties, DataWarehouseInferenceContext, InferenceColumnType, TableProperties
label_desc: Use image node_id 2 for calling a global function with example usage: test_table_properties() without return types