File tree Expand file tree Collapse file tree 4 files changed +36
-4
lines changed
Expand file tree Collapse file tree 4 files changed +36
-4
lines changed Original file line number Diff line number Diff line change @@ -326,7 +326,7 @@ type bloomFilterJSON struct {
326326}
327327
328328// MarshalJSON implements json.Marshaler interface.
329- func (f * BloomFilter ) MarshalJSON () ([]byte , error ) {
329+ func (f BloomFilter ) MarshalJSON () ([]byte , error ) {
330330 return json .Marshal (bloomFilterJSON {f .m , f .k , f .b })
331331}
332332
Original file line number Diff line number Diff line change 11package bloom
22
33import (
4+ "fmt"
45 "bytes"
56 "encoding/binary"
67 "encoding/gob"
78 "encoding/json"
89 "math"
910 "testing"
11+
12+ "github.com/bits-and-blooms/bitset"
1013)
1114
1215// This implementation of Bloom filters is _not_
@@ -291,6 +294,35 @@ func TestMarshalUnmarshalJSON(t *testing.T) {
291294 if err != nil {
292295 t .Fatal (err .Error ())
293296 }
297+ fmt .Println (string (data ))
298+
299+ var g BloomFilter
300+ err = json .Unmarshal (data , & g )
301+ if err != nil {
302+ t .Fatal (err .Error ())
303+ }
304+ if g .m != f .m {
305+ t .Error ("invalid m value" )
306+ }
307+ if g .k != f .k {
308+ t .Error ("invalid k value" )
309+ }
310+ if g .b == nil {
311+ t .Fatal ("bitset is nil" )
312+ }
313+ if ! g .b .Equal (f .b ) {
314+ t .Error ("bitsets are not equal" )
315+ }
316+ }
317+
318+
319+ func TestMarshalUnmarshalJSONValue (t * testing.T ) {
320+ f := BloomFilter {1000 , 4 , bitset .New (1000 )}
321+ data , err := json .Marshal (f )
322+ if err != nil {
323+ t .Fatal (err .Error ())
324+ }
325+ fmt .Println (string (data ))
294326
295327 var g BloomFilter
296328 err = json .Unmarshal (data , & g )
Original file line number Diff line number Diff line change @@ -3,6 +3,6 @@ module github.com/bits-and-blooms/bloom/v3
33go 1.16
44
55require (
6- github.com/bits-and-blooms/bitset v1.8 .0
6+ github.com/bits-and-blooms/bitset v1.9 .0
77 github.com/twmb/murmur3 v1.1.6
88)
Original file line number Diff line number Diff line change 11github.com/bits-and-blooms/bitset v1.3.1 h1:y+qrlmq3XsWi+xZqSaueaE8ry8Y127iMxlMfqcK8p0g =
22github.com/bits-and-blooms/bitset v1.3.1 /go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA =
3- github.com/bits-and-blooms/bitset v1.8 .0 h1:FD+XqgOZDUxxZ8hzoBFuV9+cGWY9CslN6d5MS5JVb4c =
4- github.com/bits-and-blooms/bitset v1.8 .0 /go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8 =
3+ github.com/bits-and-blooms/bitset v1.9 .0 h1:g1YivPG8jOtrN013Fe8OBXubkiTwvm7/vG2vXz03ANU =
4+ github.com/bits-and-blooms/bitset v1.9 .0 /go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8 =
55github.com/twmb/murmur3 v1.1.6 h1:mqrRot1BRxm+Yct+vavLMou2/iJt0tNVTTC0QoIjaZg =
66github.com/twmb/murmur3 v1.1.6 /go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ =
You can’t perform that action at this time.
0 commit comments