github.com/weaviate/weaviate@v1.24.6/entities/autocut/autocut_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 autocut 13 14 import ( 15 "testing" 16 17 "github.com/stretchr/testify/assert" 18 ) 19 20 func TestAutoCut(t *testing.T) { 21 cases := []struct { 22 values []float32 23 cutOff int 24 expectedResults int 25 }{ 26 {values: []float32{}, cutOff: 1, expectedResults: 0}, 27 {values: []float32{2}, cutOff: 1, expectedResults: 1}, 28 {values: []float32{2, 1.95, 1.9, 0.2, 0.1, 0.1, -1}, cutOff: 1, expectedResults: 3}, 29 {values: []float32{2, 1.95, 1.9, 0.2, 0.1, 0.1, -2}, cutOff: 2, expectedResults: 6}, 30 {values: []float32{5, 1, 1, 1, 1, 0, 0}, cutOff: 1, expectedResults: 1}, 31 {values: []float32{5, 1, 1, 1, 1, 0, 0}, cutOff: 2, expectedResults: 5}, 32 {values: []float32{0.298, 0.260, 0.169, 0.108, 0.108, 0.104, 0.093}, cutOff: 1, expectedResults: 3}, 33 {values: []float32{0.5, 0.32, 0.31, 0.30, 0.29, 0.15}, cutOff: 1, expectedResults: 1}, 34 {values: []float32{0.5, 0.32, 0.31, 0.30, 0.29, 0.15, 0.15, 0.15}, cutOff: 2, expectedResults: 5}, 35 {values: []float32{1.0, 0.98, 0.95, 0.9, 0.88, 0.87, 0.80, 0.79}, cutOff: 1, expectedResults: 3}, 36 {values: []float32{1.0, 0.98, 0.95, 0.9, 0.88, 0.87, 0.80, 0.79}, cutOff: 2, expectedResults: 6}, 37 {values: []float32{1.0, 0.98, 0.95, 0.9, 0.88, 0.87, 0.80, 0.79}, cutOff: 3, expectedResults: 8}, // all values 38 {values: []float32{0.586835, 0.5450372, 0.34137487, 0.30482167, 0.2753393}, cutOff: 1, expectedResults: 2}, 39 {values: []float32{0.36663342, 0.33818772, 0.045160502, 0.045160501}, cutOff: 1, expectedResults: 2}, 40 } 41 for _, tt := range cases { 42 t.Run("", func(t *testing.T) { 43 assert.Equal(t, tt.expectedResults, Autocut(tt.values, tt.cutOff)) 44 }) 45 } 46 }