|
1 | 1 | @testset "StdNames" begin
|
| 2 | + names = Symbol.(["_apple tree_", " banana-fruit ", "-pear\tseed-"]) |
| 3 | + columns = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] |
| 4 | + t = Table(; zip(names, columns)...) |
| 5 | + T = StdNames(:uppersnake) |
| 6 | + n, c = apply(T, t) |
| 7 | + @test Tables.schema(n).names == (:APPLE_TREE, :BANANA_FRUIT, :PEAR_SEED) |
| 8 | + tₒ = revert(T, n, c) |
| 9 | + @test t == tₒ |
| 10 | + |
| 11 | + T = StdNames(:uppercamel) |
| 12 | + n, c = apply(T, t) |
| 13 | + @test Tables.schema(n).names == (:AppleTree, :BananaFruit, :PearSeed) |
| 14 | + tₒ = revert(T, n, c) |
| 15 | + @test t == tₒ |
| 16 | + |
| 17 | + T = StdNames(:upperflat) |
| 18 | + n, c = apply(T, t) |
| 19 | + @test Tables.schema(n).names == (:APPLETREE, :BANANAFRUIT, :PEARSEED) |
| 20 | + tₒ = revert(T, n, c) |
| 21 | + @test t == tₒ |
| 22 | + |
| 23 | + T = StdNames(:snake) |
| 24 | + n, c = apply(T, t) |
| 25 | + @test Tables.schema(n).names == (:apple_tree, :banana_fruit, :pear_seed) |
| 26 | + tₒ = revert(T, n, c) |
| 27 | + @test t == tₒ |
| 28 | + |
| 29 | + T = StdNames(:camel) |
| 30 | + n, c = apply(T, t) |
| 31 | + @test Tables.schema(n).names == (:appleTree, :bananaFruit, :pearSeed) |
| 32 | + tₒ = revert(T, n, c) |
| 33 | + @test t == tₒ |
| 34 | + |
| 35 | + T = StdNames(:flat) |
| 36 | + n, c = apply(T, t) |
| 37 | + @test Tables.schema(n).names == (:appletree, :bananafruit, :pearseed) |
| 38 | + tₒ = revert(T, n, c) |
| 39 | + @test t == tₒ |
| 40 | + |
| 41 | + # internal functions |
2 | 42 | names = ["apple banana", "apple\tbanana", "apple_banana", "apple-banana", "apple_Banana"]
|
3 | 43 | for name in names
|
4 |
| - @test TT._camel(name) == "AppleBanana" |
| 44 | + @test TT._uppersnake(name) == "APPLE_BANANA" |
| 45 | + @test TT._uppercamel(name) == "AppleBanana" |
| 46 | + @test TT._upperflat(name) == "APPLEBANANA" |
5 | 47 | @test TT._snake(name) == "apple_banana"
|
6 |
| - @test TT._upper(name) == "APPLEBANANA" |
| 48 | + @test TT._camel(name) == "appleBanana" |
| 49 | + @test TT._flat(name) == "applebanana" |
7 | 50 | end
|
8 | 51 |
|
9 | 52 | names = ["a", "A", "_a", "_A", "a ", "A "]
|
10 | 53 | for name in names
|
11 |
| - @test TT._camel(name) == "A" |
12 |
| - @test TT._snake(name) == "a" |
13 |
| - @test TT._upper(name) == "A" |
| 54 | + @test TT._uppersnake(TT._clean(name)) == "A" |
| 55 | + @test TT._uppercamel(TT._clean(name)) == "A" |
| 56 | + @test TT._upperflat(TT._clean(name)) == "A" |
| 57 | + @test TT._snake(TT._clean(name)) == "a" |
| 58 | + @test TT._camel(TT._clean(name)) == "a" |
| 59 | + @test TT._flat(TT._clean(name)) == "a" |
14 | 60 | end
|
15 | 61 |
|
16 | 62 | # special characters
|
|
24 | 70 | @test TT._clean(name) == "apple-tree"
|
25 | 71 |
|
26 | 72 | # invariance test
|
| 73 | + names = ["APPLE_TREE", "BANANA_FRUIT", "PEAR_SEED"] |
| 74 | + for name in names |
| 75 | + @test TT._isuppersnake(name) |
| 76 | + @test TT._uppersnake(name) == name |
| 77 | + end |
| 78 | + |
27 | 79 | names = ["AppleTree", "BananaFruit", "PearSeed"]
|
28 | 80 | for name in names
|
29 |
| - @test TT._camel(name) == name |
| 81 | + @test TT._isuppercamel(name) |
| 82 | + @test TT._uppercamel(name) == name |
| 83 | + end |
| 84 | + |
| 85 | + names = ["APPLETREE", "BANANAFRUIT", "PEARSEED"] |
| 86 | + for name in names |
| 87 | + @test TT._isupperflat(name) |
| 88 | + @test TT._upperflat(name) == name |
30 | 89 | end
|
31 | 90 |
|
32 | 91 | names = ["apple_tree", "banana_fruit", "pear_seed"]
|
33 | 92 | for name in names
|
| 93 | + @test TT._issnake(name) |
34 | 94 | @test TT._snake(name) == name
|
35 | 95 | end
|
36 | 96 |
|
37 |
| - names = ["APPLETREE", "BANANAFRUIT", "PEARSEED"] |
| 97 | + names = ["appleTree", "bananaFruit", "pearSeed"] |
38 | 98 | for name in names
|
39 |
| - @test TT._upper(name) == name |
| 99 | + @test TT._iscamel(name) |
| 100 | + @test TT._camel(name) == name |
| 101 | + end |
| 102 | + |
| 103 | + names = ["appletree", "bananafruit", "pearseed"] |
| 104 | + for name in names |
| 105 | + @test TT._isflat(name) |
| 106 | + @test TT._flat(name) == name |
40 | 107 | end
|
41 | 108 |
|
42 | 109 | # uniqueness test
|
43 | 110 | names = (Symbol("AppleTree"), Symbol("apple tree"), Symbol("apple_tree"))
|
44 |
| - cols = ([1, 2, 3], [4, 5, 6], [7, 8, 9]) |
45 |
| - t = Table(; zip(names, cols)...) |
| 111 | + columns = ([1, 2, 3], [4, 5, 6], [7, 8, 9]) |
| 112 | + t = Table(; zip(names, columns)...) |
46 | 113 | rt = Tables.rowtable(t)
|
47 |
| - T = StdNames(:upper) |
| 114 | + T = StdNames(:upperflat) |
48 | 115 | n, c = apply(T, rt)
|
49 |
| - columns = Tables.columns(n) |
50 |
| - columnnames = Tables.columnnames(columns) |
51 |
| - @test columnnames == (:APPLETREE, :APPLETREE_, :APPLETREE__) |
| 116 | + @test Tables.schema(n).names == (:APPLETREE, :APPLETREE_, :APPLETREE__) |
52 | 117 |
|
53 | 118 | # row table test
|
54 | 119 | names = (:a, Symbol("apple tree"), Symbol("banana tree"))
|
55 |
| - cols = ([1, 2, 3], [4, 5, 6], [7, 8, 9]) |
56 |
| - t = Table(; zip(names, cols)...) |
| 120 | + columns = ([1, 2, 3], [4, 5, 6], [7, 8, 9]) |
| 121 | + t = Table(; zip(names, columns)...) |
57 | 122 | rt = Tables.rowtable(t)
|
58 | 123 | T = StdNames()
|
59 | 124 | n, c = apply(T, rt)
|
|
67 | 132 | n1, c1 = apply(T, rt)
|
68 | 133 | n2 = reapply(T, n1, c1)
|
69 | 134 | @test n1 == n2
|
| 135 | + |
| 136 | + # throws |
| 137 | + @test_throws ArgumentError StdNames(:test) |
70 | 138 | end
|
0 commit comments