def test_create_table_from_dicts(): table = Table([{0: "a"}, {0: "b"}], default=None) assert table.data == [TableRow({0: "a"}), TableRow({0: "b"})] assert table.default is None
def test_table_exception(): with pytest.raises(AutomatonError) as e: Table("string") assert e.value.args[0] == "Unsupported type: <class 'str'>"
def test_table_as_list(): table = Table([{"a": 0, "b": 1}, {"c": 2}]) assert table.as_list() == [{"a": 0, "b": 1}, {"c": 2}]
def test_create_empty_table(): table = Table() assert table.data == [] assert table.default is None
def test_table_with_empty_row(): table = Table.with_empty_row(default=int) assert len(table) == 1 assert table[0] == TableRow(default=int)
def test_table_map(): table = Table([{"a": 1}, {"b": 2}]) assert table.map(lambda x: x + 100) == Table([{"a": 101}, {"b": 102}])
def test_table_columns(): table = Table([{"a": 0, "b": 1}, {"c": 2}]) assert table.columns == ["a", "b", "c"]
def test_table_get_final_row_index(): table = Table([{"a": 0, "b": 1}, {"c": 2}]) assert table.final == 1
def test_table_string_representation(): table = Table([{0: "a"}, {1: "b"}], default="x") representation = str(table) assert "| 0 | a | x |" in representation assert "| 1 | x | b |" in representation
def test_table_iterator(): table = Table([{0: 0}, {0: 1}, {0: 2}]) for i, row in enumerate(table): assert row[0] == i
def test_table_get_row(): table = Table([{0: "a"}, {1: "b"}], default=str) assert table[0] == TableRow({0: "a"}, default=str) assert table[1] == TableRow({1: "b"}, default=str)
def test_table_default_value(default, expected): table = Table([{0: "a"}, {1: "b"}], default=default) assert table[1]["a"] == expected
def test_create_table_from_dicts(): table = Table([{0: "a"}, {0: "b"}], default=None) assert table.data == [TableRow({0: "a"}), TableRow({0: "b"})] assert table.default is None def test_table_exception(): with pytest.raises(AutomatonError) as e: Table("string") assert e.value.args[0] == "Unsupported type: <class 'str'>" @pytest.mark.parametrize( "this, other, equal", [(Table(), Table(), True), (Table(), "not-a-table", False), (Table([{ 0: "a" }, { 1: "b" }], default="x"), Table([{ 0: "a" }, { 1: "b" }], default="x"), True), (Table([{ 0: "a" }, { 1: "b" }], default="x"), Table([{ 0: "a"