@@ -70,23 +70,23 @@ func Test_BsonBinaryVector(t *testing.T) {
7070 val := Binary {Subtype : TypeBinaryVector }
7171
7272 for _ , tc := range [][]byte {
73- {Float32Vector , 0 , 42 },
74- {Float32Vector , 0 , 42 , 42 },
75- {Float32Vector , 0 , 42 , 42 , 42 },
73+ {byte ( Float32Vector ) , 0 , 42 },
74+ {byte ( Float32Vector ) , 0 , 42 , 42 },
75+ {byte ( Float32Vector ) , 0 , 42 , 42 , 42 },
7676
77- {Float32Vector , 0 , 42 , 42 , 42 , 42 , 42 },
78- {Float32Vector , 0 , 42 , 42 , 42 , 42 , 42 , 42 },
79- {Float32Vector , 0 , 42 , 42 , 42 , 42 , 42 , 42 , 42 },
77+ {byte ( Float32Vector ) , 0 , 42 , 42 , 42 , 42 , 42 },
78+ {byte ( Float32Vector ) , 0 , 42 , 42 , 42 , 42 , 42 , 42 },
79+ {byte ( Float32Vector ) , 0 , 42 , 42 , 42 , 42 , 42 , 42 , 42 },
8080 } {
8181 t .Run (fmt .Sprintf ("marshaling %d bytes" , len (tc )- 2 ), func (t * testing.T ) {
8282 val .Data = tc
8383 b , err := Marshal (D {{"vector" , val }})
8484 require .NoError (t , err , "marshaling test BSON" )
8585 var got struct {
86- Vector Vector [ float32 ]
86+ Vector Vector
8787 }
8888 err = Unmarshal (b , & got )
89- require .ErrorContains (t , err , ErrInsufficientVectorData .Error ())
89+ require .ErrorContains (t , err , errInsufficientVectorData .Error ())
9090 })
9191 }
9292 })
@@ -95,39 +95,37 @@ func Test_BsonBinaryVector(t *testing.T) {
9595 t .Parallel ()
9696
9797 t .Run ("Marshaling" , func (t * testing.T ) {
98- val := BitVector {Padding : 1 }
99- _ , err := Marshal (val )
100- require .EqualError (t , err , ErrNonZeroVectorPadding .Error ())
98+ _ , err := NewPackedBitVector (nil , 1 )
99+ require .EqualError (t , err , errNonZeroVectorPadding .Error ())
101100 })
102101 t .Run ("Unmarshaling" , func (t * testing.T ) {
103- val := D {{"vector" , Binary {Subtype : TypeBinaryVector , Data : []byte {PackedBitVector , 1 }}}}
102+ val := D {{"vector" , Binary {Subtype : TypeBinaryVector , Data : []byte {byte ( PackedBitVector ) , 1 }}}}
104103 b , err := Marshal (val )
105104 require .NoError (t , err , "marshaling test BSON" )
106105 var got struct {
107- Vector Vector [ float32 ]
106+ Vector Vector
108107 }
109108 err = Unmarshal (b , & got )
110- require .ErrorContains (t , err , ErrNonZeroVectorPadding .Error ())
109+ require .ErrorContains (t , err , errNonZeroVectorPadding .Error ())
111110 })
112111 })
113112
114113 t .Run ("Exceeding maximum padding PACKED_BIT" , func (t * testing.T ) {
115114 t .Parallel ()
116115
117116 t .Run ("Marshaling" , func (t * testing.T ) {
118- val := BitVector {Padding : 8 }
119- _ , err := Marshal (val )
120- require .EqualError (t , err , ErrVectorPaddingTooLarge .Error ())
117+ _ , err := NewPackedBitVector (nil , 8 )
118+ require .EqualError (t , err , errVectorPaddingTooLarge .Error ())
121119 })
122120 t .Run ("Unmarshaling" , func (t * testing.T ) {
123- val := D {{"vector" , Binary {Subtype : TypeBinaryVector , Data : []byte {PackedBitVector , 8 }}}}
121+ val := D {{"vector" , Binary {Subtype : TypeBinaryVector , Data : []byte {byte ( PackedBitVector ) , 8 }}}}
124122 b , err := Marshal (val )
125123 require .NoError (t , err , "marshaling test BSON" )
126124 var got struct {
127- Vector Vector [ float32 ]
125+ Vector Vector
128126 }
129127 err = Unmarshal (b , & got )
130- require .ErrorContains (t , err , ErrVectorPaddingTooLarge .Error ())
128+ require .ErrorContains (t , err , errVectorPaddingTooLarge .Error ())
131129 })
132130 })
133131}
@@ -156,22 +154,23 @@ func runBsonBinaryVectorTest(t *testing.T, testKey string, test bsonBinaryVector
156154 t .Skipf ("skip invalid case %s" , test .Description )
157155 }
158156
159- var testVector interface {}
157+ testVector := make ( map [ string ] Vector )
160158 switch alias := test .DtypeHex ; alias {
161159 case "0x03" :
162- testVector = map [string ]Vector [int8 ]{
163- testKey : {convertSlice [int8 ](test .Vector )},
160+ testVector [testKey ] = Vector {
161+ dType : Int8Vector ,
162+ int8Data : convertSlice [int8 ](test .Vector ),
164163 }
165164 case "0x27" :
166- testVector = map [string ]Vector [float32 ]{
167- testKey : {convertSlice [float32 ](test .Vector )},
165+ testVector [testKey ] = Vector {
166+ dType : Float32Vector ,
167+ float32Data : convertSlice [float32 ](test .Vector ),
168168 }
169169 case "0x10" :
170- testVector = map [string ]BitVector {
171- testKey : {
172- Padding : uint8 (test .Padding ),
173- Data : convertSlice [byte ](test .Vector ),
174- },
170+ testVector [testKey ] = Vector {
171+ dType : PackedBitVector ,
172+ bitData : convertSlice [byte ](test .Vector ),
173+ bitPadding : uint8 (test .Padding ),
175174 }
176175 default :
177176 t .Fatalf ("unsupported vector type: %s" , alias )
@@ -183,18 +182,8 @@ func runBsonBinaryVectorTest(t *testing.T, testKey string, test bsonBinaryVector
183182 t .Run ("Unmarshaling" , func (t * testing.T ) {
184183 t .Parallel ()
185184
186- var got interface {}
187- switch alias := test .DtypeHex ; alias {
188- case "0x03" :
189- got = make (map [string ]Vector [int8 ])
190- case "0x27" :
191- got = make (map [string ]Vector [float32 ])
192- case "0x10" :
193- got = make (map [string ]BitVector )
194- default :
195- t .Fatalf ("unsupported type: %s" , alias )
196- }
197- err := Unmarshal (testBSON , got )
185+ var got map [string ]Vector
186+ err := Unmarshal (testBSON , & got )
198187 require .NoError (t , err )
199188 require .Equal (t , testVector , got )
200189 })
0 commit comments