diff options
Diffstat (limited to 'levenshtein/strings_test.go')
-rw-r--r-- | levenshtein/strings_test.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/levenshtein/strings_test.go b/levenshtein/strings_test.go new file mode 100644 index 0000000..fe103e4 --- /dev/null +++ b/levenshtein/strings_test.go @@ -0,0 +1,64 @@ +package levenshtein + +import ( + "reflect" + "testing" +) + +func TestString(t *testing.T) { + type args struct { + s1 string + s2 string + } + tests := []struct { + name string + args args + want []Edit + }{ + { + name: "test1", + args: args{ + s1: "абвзгде", + s2: "абвжгде", + }, + want: []Edit{ + { + Type: Replace, + Idx1: 3, + Idx2: 3, + }, + }, + }, + { + name: "test2", + args: args{ + s1: "абавзгд", + s2: "абввжгде", + }, + want: []Edit{ + { + Type: Insert, // абавзгд -> абавзгд[е] + Idx1: 6, + Idx2: 7, + }, + { + Type: Replace, // абав[з]где -> абав[ж]где + Idx1: 4, + Idx2: 4, + }, + { + Type: Replace, // аб[а]вжгде -> аб[в]вжгде + Idx1: 2, + Idx2: 2, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := String(tt.args.s1, tt.args.s2); !reflect.DeepEqual(got, tt.want) { + t.Errorf("LevenshteinString() = %v, want %v", got, tt.want) + } + }) + } +} |