aboutsummaryrefslogtreecommitdiffstats
path: root/test/_functions.scss
diff options
context:
space:
mode:
Diffstat (limited to 'test/_functions.scss')
-rw-r--r--test/_functions.scss103
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}