5555 NotIn ,
5656 NotNaN ,
5757 NotNull ,
58+ NotStartsWith ,
5859 Or ,
5960 Reference ,
61+ StartsWith ,
6062 UnboundPredicate ,
6163)
6264from pyiceberg .expressions .literals import Literal , literal
@@ -915,6 +917,7 @@ def test_bound_less_than_or_equal(term: BoundReference[Any]) -> None:
915917
916918def test_equal_to () -> None :
917919 equal_to = EqualTo (Reference ("a" ), literal ("a" ))
920+ assert equal_to .model_dump_json () == '{"type":"eq","term":"a","value":"a"}'
918921 assert str (equal_to ) == "EqualTo(term=Reference(name='a'), literal=literal('a'))"
919922 assert repr (equal_to ) == "EqualTo(term=Reference(name='a'), literal=literal('a'))"
920923 assert equal_to == eval (repr (equal_to ))
@@ -923,6 +926,7 @@ def test_equal_to() -> None:
923926
924927def test_not_equal_to () -> None :
925928 not_equal_to = NotEqualTo (Reference ("a" ), literal ("a" ))
929+ assert not_equal_to .model_dump_json () == '{"type":"not-eq","term":"a","value":"a"}'
926930 assert str (not_equal_to ) == "NotEqualTo(term=Reference(name='a'), literal=literal('a'))"
927931 assert repr (not_equal_to ) == "NotEqualTo(term=Reference(name='a'), literal=literal('a'))"
928932 assert not_equal_to == eval (repr (not_equal_to ))
@@ -931,6 +935,7 @@ def test_not_equal_to() -> None:
931935
932936def test_greater_than_or_equal_to () -> None :
933937 greater_than_or_equal_to = GreaterThanOrEqual (Reference ("a" ), literal ("a" ))
938+ assert greater_than_or_equal_to .model_dump_json () == '{"type":"gt-eq","term":"a","value":"a"}'
934939 assert str (greater_than_or_equal_to ) == "GreaterThanOrEqual(term=Reference(name='a'), literal=literal('a'))"
935940 assert repr (greater_than_or_equal_to ) == "GreaterThanOrEqual(term=Reference(name='a'), literal=literal('a'))"
936941 assert greater_than_or_equal_to == eval (repr (greater_than_or_equal_to ))
@@ -939,6 +944,7 @@ def test_greater_than_or_equal_to() -> None:
939944
940945def test_greater_than () -> None :
941946 greater_than = GreaterThan (Reference ("a" ), literal ("a" ))
947+ assert greater_than .model_dump_json () == '{"type":"gt","term":"a","value":"a"}'
942948 assert str (greater_than ) == "GreaterThan(term=Reference(name='a'), literal=literal('a'))"
943949 assert repr (greater_than ) == "GreaterThan(term=Reference(name='a'), literal=literal('a'))"
944950 assert greater_than == eval (repr (greater_than ))
@@ -947,14 +953,26 @@ def test_greater_than() -> None:
947953
948954def test_less_than () -> None :
949955 less_than = LessThan (Reference ("a" ), literal ("a" ))
956+ assert less_than .model_dump_json () == '{"type":"lt","term":"a","value":"a"}'
950957 assert str (less_than ) == "LessThan(term=Reference(name='a'), literal=literal('a'))"
951958 assert repr (less_than ) == "LessThan(term=Reference(name='a'), literal=literal('a'))"
952959 assert less_than == eval (repr (less_than ))
953960 assert less_than == pickle .loads (pickle .dumps (less_than ))
954961
955962
963+ def test_starts_with () -> None :
964+ starts_with = StartsWith (Reference ("a" ), literal ("a" ))
965+ assert starts_with .model_dump_json () == '{"type":"starts-with","term":"a","value":"a"}'
966+
967+
968+ def test_not_starts_with () -> None :
969+ not_starts_with = NotStartsWith (Reference ("a" ), literal ("a" ))
970+ assert not_starts_with .model_dump_json () == '{"type":"not-starts-with","term":"a","value":"a"}'
971+
972+
956973def test_less_than_or_equal () -> None :
957974 less_than_or_equal = LessThanOrEqual (Reference ("a" ), literal ("a" ))
975+ assert less_than_or_equal .model_dump_json () == '{"type":"lt-eq","term":"a","value":"a"}'
958976 assert str (less_than_or_equal ) == "LessThanOrEqual(term=Reference(name='a'), literal=literal('a'))"
959977 assert repr (less_than_or_equal ) == "LessThanOrEqual(term=Reference(name='a'), literal=literal('a'))"
960978 assert less_than_or_equal == eval (repr (less_than_or_equal ))
0 commit comments