UNPKG

2.88 kBJavaScriptView Raw
1
2require("../")
3
4
5require("testman").
6describe ("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 // 1.001 < 1.002 < 1.010 < 1.02 < 1.1 < 1.3
61done()
62