diff options
Diffstat (limited to 'vendor/github.com/google/gopacket/bytediff/bytediff_test.go')
-rw-r--r-- | vendor/github.com/google/gopacket/bytediff/bytediff_test.go | 53 |
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) + } + } +} |