@@ -887,36 +887,45 @@ def test_hybrid_bm25_operators(collection_factory: CollectionFactory) -> None:
887887
888888
889889def test_aggregate_empty_result_none_values (collection_factory : CollectionFactory ) -> None :
890- """Test for issue #11219: aggregate metrics should be None for empty result sets, not 0/0.0"""
890+ """Test for issue #11219: aggregate metrics should be None for empty result sets, not 0/0.0. """
891891 collection = collection_factory (
892892 properties = [
893- Property (name = "bucket" , data_type = DataType .INT , index_filterable = True , index_range_filters = True ),
893+ Property (
894+ name = "bucket" ,
895+ data_type = DataType .INT ,
896+ index_filterable = True ,
897+ index_range_filters = True ,
898+ ),
894899 Property (name = "intVal" , data_type = DataType .INT ),
895900 Property (name = "numberVal" , data_type = DataType .NUMBER ),
896901 ],
897902 vectorizer_config = Configure .Vectorizer .none (),
898903 inverted_index_config = Configure .inverted_index (index_null_state = True ),
899904 )
900-
905+
901906 if collection ._connection ._weaviate_version .is_lower_than (1 , 29 , 0 ):
902907 pytest .skip ("gRPC aggregates are only supported in versions 1.29.0 and higher" )
903-
908+
904909 # Insert one object with bucket=0
905910 collection .data .insert ({"bucket" : 0 , "intVal" : 123 , "numberVal" : 456.78 })
906-
911+
907912 # Query with a filter that returns no results (bucket=99 doesn't exist)
908913 res : AggregateReturn = collection .aggregate .over_all (
909914 filters = Filter .by_property ("bucket" ).equal (99 ),
910915 total_count = True ,
911916 return_metrics = [
912- Metrics ("intVal" ).integer (count = True , maximum = True , mean = True , median = True , minimum = True , mode = True , sum_ = True ),
913- Metrics ("numberVal" ).number (count = True , maximum = True , mean = True , median = True , minimum = True , mode = True , sum_ = True ),
917+ Metrics ("intVal" ).integer (
918+ count = True , maximum = True , mean = True , median = True , minimum = True , mode = True , sum_ = True
919+ ),
920+ Metrics ("numberVal" ).number (
921+ count = True , maximum = True , mean = True , median = True , minimum = True , mode = True , sum_ = True
922+ ),
914923 ],
915924 )
916-
925+
917926 # Verify total_count is 0
918927 assert res .total_count == 0
919-
928+
920929 # Verify integer metrics: count should be 0, all other metrics should be None (not 0)
921930 int_metrics = res .properties ["intVal" ]
922931 assert isinstance (int_metrics , AggregateInteger )
@@ -927,7 +936,7 @@ def test_aggregate_empty_result_none_values(collection_factory: CollectionFactor
927936 assert int_metrics .minimum is None , "minimum should be None for empty result set"
928937 assert int_metrics .mode is None , "mode should be None for empty result set"
929938 assert int_metrics .sum_ is None , "sum_ should be None for empty result set"
930-
939+
931940 # Verify number metrics: count should be 0, all other metrics should be None (not 0.0)
932941 number_metrics = res .properties ["numberVal" ]
933942 assert isinstance (number_metrics , AggregateNumber )
@@ -938,4 +947,3 @@ def test_aggregate_empty_result_none_values(collection_factory: CollectionFactor
938947 assert number_metrics .minimum is None , "minimum should be None for empty result set"
939948 assert number_metrics .mode is None , "mode should be None for empty result set"
940949 assert number_metrics .sum_ is None , "sum_ should be None for empty result set"
941-
0 commit comments