| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- // Copyright (c) 2015, Arbo von Monkiewitsch All rights reserved.
 
- // Use of this source code is governed by a BSD-style
 
- // license.
 
- package levenshtein
 
- import (
 
- 	"fmt"
 
- 	"testing"
 
- )
 
- var distanceTests = []struct {
 
- 	first  string
 
- 	second string
 
- 	wanted int
 
- }{
 
- 	{"a", "a", 0},
 
- 	{"ab", "ab", 0},
 
- 	{"ab", "aa", 1},
 
- 	{"ab", "aa", 1},
 
- 	{"ab", "aaa", 2},
 
- 	{"bbb", "a", 3},
 
- 	{"kitten", "sitting", 3},
 
- 	{"a", "", 1},
 
- 	{"", "a", 1},
 
- 	{"aa", "aü", 1},
 
- 	{"Fön", "Föm", 1},
 
- }
 
- func TestDistance(t *testing.T) {
 
- 	lev := &Context{}
 
- 	for index, distanceTest := range distanceTests {
 
- 		result := lev.Distance(distanceTest.first, distanceTest.second)
 
- 		if result != distanceTest.wanted {
 
- 			output := fmt.Sprintf("%v \t distance of %v and %v should be %v but was %v.",
 
- 				index, distanceTest.first, distanceTest.second, distanceTest.wanted, result)
 
- 			t.Errorf(output)
 
- 		}
 
- 	}
 
- }
 
- func BenchmarkDistance(b *testing.B) {
 
- 	s1 := "frederick"
 
- 	s2 := "fredelstick"
 
- 	total := 0
 
- 	b.ReportAllocs()
 
- 	b.ResetTimer()
 
- 	c := &Context{}
 
- 	for i := 0; i < b.N; i++ {
 
- 		total += c.Distance(s1, s2)
 
- 	}
 
- 	if total == 0 {
 
- 		b.Logf("total is %d", total)
 
- 	}
 
- }
 
- func BenchmarkDistanceOriginal(b *testing.B) {
 
- 	s1 := "frederick"
 
- 	s2 := "fredelstick"
 
- 	total := 0
 
- 	b.ReportAllocs()
 
- 	b.ResetTimer()
 
- 	ctx := Context{}
 
- 	for i := 0; i < b.N; i++ {
 
- 		total += ctx.Distance(s1, s2)
 
- 	}
 
- 	if total == 0 {
 
- 		b.Logf("total is %d", total)
 
- 	}
 
- }
 
 
  |