github.com/weaviate/weaviate@v1.24.6/test/acceptance/vector_distances/setup_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package test 13 14 import ( 15 "testing" 16 17 "github.com/weaviate/weaviate/client/objects" 18 "github.com/weaviate/weaviate/client/schema" 19 "github.com/weaviate/weaviate/entities/models" 20 "github.com/weaviate/weaviate/test/helper" 21 ) 22 23 func Test_GraphQL(t *testing.T) { 24 t.Run("setup test schema (cosine only)", addTestSchemaCosine) 25 // at this point only cosine is present, so we can evaluate both Get and 26 // Explore 27 t.Run("import cosine test data ", addTestDataCosine) 28 t.Run("test cosine distance", testCosine) 29 30 // import rest of the schema meaning, we can only test Get, Explore is now 31 // impossible 32 t.Run("setup test schema (all)", addTestSchemaOther) 33 t.Run("import dot test data ", addTestDataDot) 34 t.Run("test dot distance", testDot) 35 t.Run("import l2 test data ", addTestDataL2) 36 t.Run("test l2 distance", testL2) 37 t.Run("import manhattan test data", addTestDataManhattan) 38 t.Run("test manhattan distance", testManhattan) 39 t.Run("import hamming test data", addTestDataHamming) 40 t.Run("test hamming distance", testHamming) 41 42 // tear down what we no longer need 43 deleteObjectClass(t, "Cosine_Class") 44 deleteObjectClass(t, "Dot_Class") 45 deleteObjectClass(t, "Manhattan_Class") 46 deleteObjectClass(t, "Hamming_Class") 47 48 // now only l2 is left so we can test explore with L2 49 t.Run("explore across multiple non-cosine classes", testExplore) 50 51 // tear down remaining classes 52 deleteObjectClass(t, "L2Squared_Class") 53 } 54 55 func createObjectClass(t *testing.T, class *models.Class) { 56 params := schema.NewSchemaObjectsCreateParams().WithObjectClass(class) 57 resp, err := helper.Client(t).Schema.SchemaObjectsCreate(params, nil) 58 helper.AssertRequestOk(t, resp, err, nil) 59 } 60 61 func createObject(t *testing.T, object *models.Object) { 62 params := objects.NewObjectsCreateParams().WithBody(object) 63 resp, err := helper.Client(t).Objects.ObjectsCreate(params, nil) 64 helper.AssertRequestOk(t, resp, err, nil) 65 } 66 67 func deleteObjectClass(t *testing.T, class string) { 68 delParams := schema.NewSchemaObjectsDeleteParams().WithClassName(class) 69 delRes, err := helper.Client(t).Schema.SchemaObjectsDelete(delParams, nil) 70 helper.AssertRequestOk(t, delRes, err, nil) 71 }