aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/google/gopacket/bytediff/bytediff_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/google/gopacket/bytediff/bytediff_test.go')
-rw-r--r--vendor/github.com/google/gopacket/bytediff/bytediff_test.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/vendor/github.com/google/gopacket/bytediff/bytediff_test.go b/vendor/github.com/google/gopacket/bytediff/bytediff_test.go
new file mode 100644
index 0000000..022ad4b
--- /dev/null
+++ b/vendor/github.com/google/gopacket/bytediff/bytediff_test.go
@@ -0,0 +1,53 @@
+// Copyright 2012 Google, Inc. All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file in the root of the source
+// tree.
+
+package bytediff
+
+import (
+ "reflect"
+ "testing"
+)
+
+func TestLCS(t *testing.T) {
+ for i, test := range []struct {
+ a, b []byte
+ indexA, indexB, length int
+ }{
+ {[]byte{1, 2, 3}, []byte{1, 2, 3}, 0, 0, 3},
+ {[]byte{0, 1, 2, 3}, []byte{1, 2, 3, 4}, 1, 0, 3},
+ {[]byte{0, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3}, []byte{1, 2, 3, 4}, 4, 0, 4},
+ {[]byte{1, 2, 2, 3, 4}, []byte{1, 2, 3, 4}, 2, 1, 3},
+ {[]byte{0, 1, 2, 3, 4}, []byte{1, 1, 2, 2, 3, 4}, 2, 3, 3},
+ } {
+ ia, ib, l := longestCommonSubstring(test.a, test.b)
+ if ia != test.indexA || ib != test.indexB || l != test.length {
+ t.Errorf("%d: want (%d %d %d) got (%d %d %d)", i, test.indexA, test.indexB, test.length, ia, ib, l)
+ }
+ }
+}
+
+func TestDiff(t *testing.T) {
+ for i, test := range []struct {
+ a, b []byte
+ d Differences
+ }{
+ {
+ []byte{0, 1, 2, 3, 4},
+ []byte{1, 1, 2, 2, 3, 4},
+ Differences{
+ Difference{true, []byte{0}, []byte{}},
+ Difference{false, []byte{1}, []byte{1}},
+ Difference{true, []byte{}, []byte{1, 2}},
+ Difference{false, []byte{2, 3, 4}, []byte{2, 3, 4}},
+ },
+ },
+ } {
+ diffs := Diff(test.a, test.b)
+ if !reflect.DeepEqual(diffs, test.d) {
+ t.Errorf("%d want %v got %v", i, test.d, diffs)
+ }
+ }
+}