@@ -3,76 +3,61 @@ levenshtein() function test
33--FILE--
44<?php
55
6- function test_me ($ title ,$ expect ,$ text1 ,$ text2 ,$ cost1 ="" ,$ cost2 ="" ,$ cost3 ="" ) {
7-
8- if ($ cost1 =="" ) {
9- $ result =levenshtein ($ text1 ,$ text2 );
10- }
11- elseif ($ cost2 =="" ) {
12- $ result =levenshtein ($ text1 ,$ text2 ,$ cost1 );
13- }
14- else {
15- $ result =levenshtein ($ text1 ,$ text2 ,$ cost1 ,$ cost2 ,$ cost3 );
16- }
17- if ($ result ==$ expect ) return 0 ;
18-
19- echo "$ title: result is $ result instead of $ expect " ;
20- echo "for ' $ text1'/' $ text2' " ;
21- if ($ cost1 ) echo "( $ cost1: $ cost2: $ cost3) " ;
22- echo "\n" ;
23-
24- return 1 ;
25- }
26-
27- $ n =0 ;
28-
29- $ n += test_me ("equal " , 0 , "12345 " , "12345 " );
30- $ n += test_me ("1st empty " , 3 , "" , "xzy " );
31- $ n += test_me ("2nd empty " , 3 , "xzy " , "" );
32- $ n += test_me ("both empty " , 0 , "" , "" );
33- $ n += test_me ("1 char " , 1 , "1 " , "2 " );
34- $ n += test_me ("2 char swap " , 2 , "12 " , "21 " );
35-
36- $ n += test_me ("inexpensive delete " , 2 , "2121 " , "11 " , 2 , 1 , 1 );
37- $ n += test_me ("expensive delete " , 10 , "2121 " , "11 " , 2 , 1 , 5 );
38- $ n += test_me ("inexpensive insert " , 2 , "11 " , "2121 " , 1 , 1 , 1 );
39- $ n += test_me ("expensive insert " , 10 , "11 " , "2121 " , 5 , 1 , 1 );
40-
41- $ n += test_me ("expensive replace " , 3 , "111 " , "121 " , 2 , 3 , 2 );
42- $ n += test_me ("very expensive replace " , 4 , "111 " , "121 " , 2 , 9 , 2 );
43-
44- $ n += test_me ("bug #7368 " , 2 , "13458 " , "12345 " );
45- $ n += test_me ("bug #7368 " , 2 , "1345 " , "1234 " );
46-
47- $ n += test_me ("bug #6562 " , 1 , "debugg " , "debug " );
48- $ n += test_me ("bug #6562 " , 1 , "ddebug " , "debug " );
49- $ n += test_me ("bug #6562 " , 2 , "debbbug " , "debug " );
50- $ n += test_me ("bug #6562 " , 1 , "debugging " , "debuging " );
51-
52- $ n += test_me ("bug #16473 " , 2 , "a " , "bc " );
53- $ n += test_me ("bug #16473 " , 2 , "xa " , "xbc " );
54- $ n += test_me ("bug #16473 " , 2 , "xax " , "xbcx " );
55- $ n += test_me ("bug #16473 " , 2 , "ax " , "bcx " );
56-
57- $ n += test_me ("custom " , -1 , "111 " , "121 " , "my_levcode " );
58- $ n += test_me ("lt maxlength1 " , 254 , "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsu " , "A " );
59- $ n += test_me ("gt maxlength1 " , -1 , "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuv " , "A " );
60-
61- $ n += test_me ("lt maxlength2 " , 254 , "A " , "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsu " );
62- $ n += test_me ("gt maxlength2 " , -1 , "A " , "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuv " );
63-
64- echo ($ n ==0 )?"all passed \n" :"$ n failed \n" ;
65-
66- var_dump (levenshtein ("" , "" , -1 , -1 , -1 ));
67- var_dump (levenshtein ("" , "" , 10 , 10 , 10 ));
6+ echo '--- Equal --- ' . \PHP_EOL ;
7+ var_dump (levenshtein ('12345 ' , '12345 ' ));
8+
9+ echo '--- First string empty --- ' . \PHP_EOL ;
10+ var_dump (levenshtein ('' , 'xyz ' ));
11+ echo '--- Second string empty --- ' . \PHP_EOL ;
12+ var_dump (levenshtein ('xyz ' , '' ));
13+ echo '--- Both empty --- ' . \PHP_EOL ;
14+ var_dump (levenshtein ('' , '' ));
15+ var_dump (levenshtein ('' , '' , 10 , 10 , 10 ));
16+
17+ echo '--- 1 character --- ' . \PHP_EOL ;
18+ var_dump (levenshtein ('1 ' , '2 ' ));
19+ echo '--- 2 character swapped --- ' . \PHP_EOL ;
20+ var_dump (levenshtein ('12 ' , '21 ' ));
21+
22+ echo '--- Inexpensive deletion --- ' . \PHP_EOL ;
23+ var_dump (levenshtein ('2121 ' , '11 ' , 2 ));
24+ echo '--- Expensive deletion --- ' . \PHP_EOL ;
25+ var_dump (levenshtein ('2121 ' , '11 ' , 2 , 1 , 5 ));
26+
27+ echo '--- Inexpensive insertion --- ' . \PHP_EOL ;
28+ var_dump (levenshtein ('11 ' , '2121 ' ));
29+ echo '--- Expensive insertion --- ' . \PHP_EOL ;
30+ var_dump (levenshtein ('11 ' , '2121 ' , 5 ));
31+
32+ echo '--- Expensive replacement --- ' . \PHP_EOL ;
33+ var_dump (levenshtein ('111 ' , '121 ' , 2 , 3 , 2 ));
34+ echo '--- Very expensive replacement --- ' . \PHP_EOL ;
35+ var_dump (levenshtein ('111 ' , '121 ' , 2 , 9 , 2 ));
6836
6937?>
70- --EXPECTF--
71- Warning: levenshtein(): The general Levenshtein support is not there yet in %s on line %d
72-
73- Warning: levenshtein(): Argument string(s) too long in %s on line %d
74-
75- Warning: levenshtein(): Argument string(s) too long in %s on line %d
76- all passed
38+ --EXPECT--
39+ --- Equal ---
40+ int(0)
41+ --- First string empty ---
42+ int(3)
43+ --- Second string empty ---
44+ int(3)
45+ --- Both empty ---
7746int(0)
7847int(0)
48+ --- 1 character ---
49+ int(1)
50+ --- 2 character swapped ---
51+ int(2)
52+ --- Inexpensive deletion ---
53+ int(2)
54+ --- Expensive deletion ---
55+ int(10)
56+ --- Inexpensive insertion ---
57+ int(2)
58+ --- Expensive insertion ---
59+ int(10)
60+ --- Expensive replacement ---
61+ int(3)
62+ --- Very expensive replacement ---
63+ int(4)
0 commit comments