diff options
Diffstat (limited to 'test/_functions.scss')
| -rw-r--r-- | test/_functions.scss | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/test/_functions.scss b/test/_functions.scss new file mode 100644 index 0000000..54e37c5 --- /dev/null +++ b/test/_functions.scss | |||
| @@ -0,0 +1,103 @@ | |||
| 1 | @include describe('Functions') { | ||
| 2 | @include it('iro-str-replace') { | ||
| 3 | $str: 'Hello world!'; | ||
| 4 | |||
| 5 | @include assert-equal(iro-str-replace($str, 'world', 'neighbor'), 'Hello neighbor!', 'Replace "world" with "neighbor"'); | ||
| 6 | @include assert-equal(iro-str-replace($str, 'neighbor', 'moon'), 'Hello world!', 'Replace "neighbor" with "moon"'); | ||
| 7 | @include assert-equal(iro-str-replace($str, 'Hello', 'Bye'), 'Bye world!', 'Replace "Hello" with "Bye"'); | ||
| 8 | } | ||
| 9 | |||
| 10 | @include it('iro-list-slice') { | ||
| 11 | $list: 'this' 'is' 'a' 'list'; | ||
| 12 | |||
| 13 | @include assert-equal(iro-list-slice($list, 2), 'is' 'a' 'list', 'Discard first item'); | ||
| 14 | @include assert-equal(iro-list-slice($list, 1, 3), 'this' 'is' 'a', 'Keep first 3 items'); | ||
| 15 | @include assert-equal(iro-list-slice($list, 2, 3), 'is' 'a', 'Extract list from index 2 to 3'); | ||
| 16 | @include assert-equal(iro-list-slice($list, -1, -1), join((), 'list'), 'Keep last item'); | ||
| 17 | @include assert-equal(iro-list-slice($list, -1, 1), 'list' 'this', 'Extract first and last item'); | ||
| 18 | } | ||
| 19 | |||
| 20 | @include it('iro-list-prepend') { | ||
| 21 | $list: 'this' 'is' 'a' 'list'; | ||
| 22 | |||
| 23 | @include assert-equal(iro-list-prepend($list, 'and'), 'and' 'this' 'is' 'a' 'list', 'Prepend "and"'); | ||
| 24 | @include assert-equal(iro-list-prepend($list, 2), 2 'this' 'is' 'a' 'list', 'Prepend 2'); | ||
| 25 | } | ||
| 26 | |||
| 27 | @include it('iro-quicksort') { | ||
| 28 | @include assert-equal(iro-quicksort(1 2 3 4 5), 1 2 3 4 5, 'Already sorted list of 5 items'); | ||
| 29 | @include assert-equal(iro-quicksort(1 3 2), 1 2 3, 'Random list of 3 items'); | ||
| 30 | @include assert-equal(iro-quicksort(6 3 7 3 8 1 4), 1 3 3 4 6 7 8, 'Random list of 7 items, one duplicate'); | ||
| 31 | @include assert-equal(iro-quicksort(1 1 1 1), 1 1 1 1, 'List of 4 identical items'); | ||
| 32 | } | ||
| 33 | |||
| 34 | @include it('iro-map-get-default') { | ||
| 35 | $map: ('key': 'value', 'another': 'item'); | ||
| 36 | |||
| 37 | @include assert-equal(iro-map-get-default($map, 'another', 0), map-get($map, 'another'), 'Get existing value'); | ||
| 38 | @include assert-equal(iro-map-get-default($map, 'index', 'nothing'), 'nothing', 'Get missing value'); | ||
| 39 | } | ||
| 40 | |||
| 41 | @include it('iro-map-get-deep') { | ||
| 42 | $map: ( | ||
| 43 | 'key': 'value', | ||
| 44 | 'sub': ( | ||
| 45 | 'item1': 1, | ||
| 46 | 'item2': 2, | ||
| 47 | 'subsub': ( | ||
| 48 | 'item1': 11, | ||
| 49 | 'item2': 12, | ||
| 50 | ) | ||
| 51 | ) | ||
| 52 | ); | ||
| 53 | |||
| 54 | @include assert-equal(iro-map-get-deep($map, 'key'), map-get($map, 'key'), 'Get value in root level'); | ||
| 55 | @include assert-equal(iro-map-get-deep($map, 'sub' 'item1'), map-get(map-get($map, 'sub'), 'item1'), 'Get value in first level'); | ||
| 56 | @include assert-equal(iro-map-get-deep($map, 'sub' 'item2'), map-get(map-get($map, 'sub'), 'item2'), 'Get value in first level'); | ||
| 57 | @include assert-equal(iro-map-get-deep($map, 'sub' 'subsub' 'item1'), map-get(map-get(map-get($map, 'sub'), 'subsub'), 'item1'), 'Get value in second level'); | ||
| 58 | @include assert-equal(iro-map-get-deep($map, 'sub' 'subsub' 'item2'), map-get(map-get(map-get($map, 'sub'), 'subsub'), 'item2'), 'Get value in second level'); | ||
| 59 | } | ||
| 60 | |||
| 61 | @include it('iro-map-merge-recursive') { | ||
| 62 | $map1: ( | ||
| 63 | 'key': 'value', | ||
| 64 | 'sub': ( | ||
| 65 | 'item1': 1, | ||
| 66 | 'item3': 2 | ||
| 67 | ) | ||
| 68 | ); | ||
| 69 | $map2: ( | ||
| 70 | 'another': 'item', | ||
| 71 | 'sub': ( | ||
| 72 | 'item1': 0, | ||
| 73 | 'item2': 1 | ||
| 74 | ) | ||
| 75 | ); | ||
| 76 | |||
| 77 | $expected: ( | ||
| 78 | 'key': 'value', | ||
| 79 | 'another': 'item', | ||
| 80 | 'sub': ( | ||
| 81 | 'item1': 0, | ||
| 82 | 'item2': 1, | ||
| 83 | 'item3': 2 | ||
| 84 | ) | ||
| 85 | ); | ||
| 86 | |||
| 87 | @include assert-equal(iro-map-merge-recursive($map1, $map2), $expected); | ||
| 88 | } | ||
| 89 | |||
| 90 | @include it('iro-strip-unit') { | ||
| 91 | @include assert-true(unitless(iro-strip-unit(1em)), 'Remove unit from 1em'); | ||
| 92 | @include assert-true(unitless(iro-strip-unit(2rem)), 'Remove unit from 2rem'); | ||
| 93 | @include assert-true(unitless(iro-strip-unit(3px)), 'Remove unit from 3px'); | ||
| 94 | @include assert-true(unitless(iro-strip-unit(4)), 'Remove unit from 4'); | ||
| 95 | @include assert-true(unitless(iro-strip-unit(5pt)), 'Remove unit from 5pt'); | ||
| 96 | } | ||
| 97 | |||
| 98 | @include it('iro-px-to-rem') { | ||
| 99 | @include assert-equal(iro-px-to-rem(16px, 16px), 1rem, 'Convert 16px'); | ||
| 100 | @include assert-equal(iro-px-to-rem(32px, 16px), 2rem, 'Convert 16px'); | ||
| 101 | @include assert-equal(iro-px-to-rem(8px, 16px), 0.5rem, 'Convert 16px'); | ||
| 102 | } | ||
| 103 | } | ||
