1 |
|
2 | require("../")
|
3 |
|
4 |
|
5 | require("testman").
|
6 | describe ("String.naturalCompare").
|
7 | it ( "should compare strings as usual" ).
|
8 | equal( String.naturalCompare("a", "a"), 0 ).
|
9 | equal( String.naturalCompare("a", "b"), -1 ).
|
10 | equal( String.naturalCompare("b", "a"), 1 ).
|
11 | equal( String.naturalCompare("a", "aa"), -1 ).
|
12 | equal( String.naturalCompare("aa", "a"), 1 ).
|
13 | equal( String.naturalCompare("a", "ba"), -1 ).
|
14 | equal( String.naturalCompare("aa", "b"), -1 ).
|
15 | equal( String.naturalCompare("aa", "ba"), -1 ).
|
16 | equal( String.naturalCompare("ba", "a"), 1 ).
|
17 | equal( String.naturalCompare("b", "aa"), 1 ).
|
18 | equal( String.naturalCompare("ba", "aa"), 1 ).
|
19 | it ( "should compare decimal integer substrings by their numeric value" ).
|
20 | equal( String.naturalCompare("a", "a1"), -1 ).
|
21 | equal( String.naturalCompare("a1", "a"), 1 ).
|
22 | equal( String.naturalCompare("a", "1"), 1 ).
|
23 | equal( String.naturalCompare("1", "1"), 0 ).
|
24 | equal( String.naturalCompare("2", "3"), -1 ).
|
25 | equal( String.naturalCompare("3", "2"), 1 ).
|
26 | equal( String.naturalCompare("1", "a"), -1 ).
|
27 | equal( String.naturalCompare("a1", "a1"), 0 ).
|
28 | equal( String.naturalCompare("a1", "a2"), -1 ).
|
29 | equal( String.naturalCompare("a2", "a1"), 1 ).
|
30 | equal( String.naturalCompare("a1", "a11"), -1 ).
|
31 | equal( String.naturalCompare("a11","a12"), -1 ).
|
32 | equal( String.naturalCompare("a12","a11"), 1 ).
|
33 | equal( String.naturalCompare("a11", "a1"), 1 ).
|
34 | equal( String.naturalCompare("a1a", "a1"), 1 ).
|
35 | equal( String.naturalCompare("a1", "a1a"), -1 ).
|
36 | equal( String.naturalCompare("a1a", "a11"), -1 ).
|
37 | equal( String.naturalCompare("a11", "a1a"), 1 ).
|
38 | equal( String.naturalCompare("a11a", "a1a"), 1 ).
|
39 | equal( String.naturalCompare("a1a", "a11a"), -1 ).
|
40 | equal( String.naturalCompare("a 1", "a 001"), 0 ).
|
41 | equal( String.naturalCompare("a 1", "a 002"), -1 ).
|
42 | equal( String.naturalCompare("a 2", "a 001"), 1 ).
|
43 | it ( "should work with 0 in string" ).
|
44 | equal( String.naturalCompare("a 0 a", "a 0 b"), -1 ).
|
45 | equal( String.naturalCompare("a 0 a", "a 00 b"), -1 ).
|
46 | equal( String.naturalCompare("a 00 a", "a 0 b"), -1 ).
|
47 | equal( String.naturalCompare("a 0 b", "a 0 a"), 1 ).
|
48 | equal( String.naturalCompare("a 00 b", "a 0 a"), 1 ).
|
49 | it ( "should compare positive and negative number" ).
|
50 | equal( String.naturalCompare("a 1", "a -1"), 1 ).
|
51 | equal( String.naturalCompare("a -1", "a 1"), -1 ).
|
52 | equal( String.naturalCompare("a 2", "a -1"), 1 ).
|
53 | equal( String.naturalCompare("a -1", "a 2"), -1 ).
|
54 | equal( String.naturalCompare("a 1", "a -2"), 1 ).
|
55 | equal( String.naturalCompare("a -2", "a 1"), -1 ).
|
56 | equal( String.naturalCompare("a -1", "a -1"), 0 ).
|
57 | it ( "should preserve leading zeros on decimal fractions.", { skip: "Not implemented" } ).
|
58 | equal( String.naturalCompare("1.01", "1.001"), -1 ).
|
59 | equal( String.naturalCompare("1.001", "1.01"), 1 ).
|
60 |
|
61 | done()
|
62 |
|