def test_creation_with_all_values(self):
        """Test creating MarqoHybridQuery with all possible values."""
        score_modifier = ScoreModifier(
            field="test_field",
            weight=1.5,
            type=ScoreModifierType.Multiply
        )
        
        filter_obj = SearchFilter(
            EqualityTerm("field1", "value1", "field1:value1")
        )
        
        hybrid_parameters = HybridParameters(
            retrievalMethod=RetrievalMethod.Disjunction,
            rankingMethod=RankingMethod.RRF,
            alpha=0.7,
            rrfK=100
        )
        
        facets = FacetsParameters(
            fields={
                "test_field": FieldFacetsConfiguration(type="string")
            },
            maxDepth=5,
            maxResults=100
        )
        
        query = MarqoHybridQuery(
            index_name="test_index",
            limit=20,
            offset=5,
            attributes_to_retrieve=["field1", "field3"],
            filter=filter_obj,
            expose_facets=True,
            vector_query=[0.1, 0.2, 0.3, 0.4],
            ef_search=100,
            approximate=False,
            approximate_threshold=0.95,
            rerank_depth_tensor=50,
            or_phrases=["phrase1", "phrase2"],
            and_phrases=["phrase3"],
            hybrid_parameters=hybrid_parameters,
            score_modifiers_lexical=[score_modifier],
            score_modifiers_tensor=[score_modifier],
            global_rerank_depth=100,
            facets=facets,
            track_total_hits=True
        )
        
        # Verify all fields are set correctly
        self.assertEqual("test_index", query.index_name)
        self.assertEqual(20, query.limit)
        self.assertEqual(5, query.offset)
        self.assertEqual(["field1", "field3"], query.attributes_to_retrieve)
        self.assertEqual(filter_obj, query.filter)
        self.assertTrue(query.expose_facets)
        self.assertEqual([0.1, 0.2, 0.3, 0.4], query.vector_query)
        self.assertEqual(100, query.ef_search)
        self.assertFalse(query.approximate)
        self.assertEqual(0.95, query.approximate_threshold)
        self.assertEqual(50, query.rerank_depth_tensor)
        self.assertEqual(["phrase1", "phrase2"], query.or_phrases)
        self.assertEqual(["phrase3"], query.and_phrases)
        self.assertEqual(hybrid_parameters, query.hybrid_parameters)
        self.assertEqual([score_modifier], query.score_modifiers_lexical)
        self.assertEqual([score_modifier], query.score_modifiers_tensor)
        self.assertEqual(100, query.global_rerank_depth)
        self.assertEqual(facets, query.facets)
        self.assertTrue(query.track_total_hits)
        
        # Test inheritance
        self.assertIsInstance(query, MarqoQuery)
        self.assertIsInstance(query, MarqoHybridQuery)
Test creating MarqoHybridQuery with all possible values.
tests/unit_tests/marqo/core/models/test_marqo_query.py