aboutsummaryrefslogtreecommitdiff
path: root/sketch/sketch_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'sketch/sketch_test.go')
-rw-r--r--sketch/sketch_test.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/sketch/sketch_test.go b/sketch/sketch_test.go
new file mode 100644
index 0000000..df35514
--- /dev/null
+++ b/sketch/sketch_test.go
@@ -0,0 +1,43 @@
+package sketch
+
+import (
+ "os"
+ "path"
+ "reflect"
+ "testing"
+
+ "github.com/chmduquesne/rollinghash/rabinkarp64"
+)
+
+func TestSketchChunk(t *testing.T) {
+ var sketch, expected Sketch
+ var err error
+ dataDir := "testdata"
+ pol, err := rabinkarp64.RandomPolynomial(1)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ c0, err := os.Open(path.Join(dataDir, "000000000000000"))
+ if err != nil {
+ t.Fatal(err)
+ }
+ sketch, err = SketchChunk(c0, pol, 8<<10, 32, 3, 4)
+ if err != nil {
+ t.Fatal(err)
+ }
+ expected = Sketch{429857165471867, 6595034117354675, 8697818304802825}
+ if !reflect.DeepEqual(sketch, expected) {
+ t.Errorf("Sketch does not match, expected: %d, actual: %d", expected, sketch)
+ }
+
+ c14, err := os.Open(path.Join(dataDir, "000000000000014"))
+ sketch, err = SketchChunk(c14, pol, 8<<10, 32, 3, 4)
+ if err != nil {
+ t.Error(err)
+ }
+ expected = Sketch{658454504014104}
+ if !reflect.DeepEqual(sketch, expected) {
+ t.Errorf("Sketch does not match, expected: %d, actual: %d", expected, sketch)
+ }
+}