From d07f664450ddaaebb44127a4bd057763d13d3f82 Mon Sep 17 00:00:00 2001 From: Feuerfuchs Date: Sun, 1 Nov 2020 20:55:14 +0100 Subject: Init --- test/_functions.scss | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 test/_functions.scss (limited to 'test/_functions.scss') 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 @@ +@include describe('Functions') { + @include it('iro-str-replace') { + $str: 'Hello world!'; + + @include assert-equal(iro-str-replace($str, 'world', 'neighbor'), 'Hello neighbor!', 'Replace "world" with "neighbor"'); + @include assert-equal(iro-str-replace($str, 'neighbor', 'moon'), 'Hello world!', 'Replace "neighbor" with "moon"'); + @include assert-equal(iro-str-replace($str, 'Hello', 'Bye'), 'Bye world!', 'Replace "Hello" with "Bye"'); + } + + @include it('iro-list-slice') { + $list: 'this' 'is' 'a' 'list'; + + @include assert-equal(iro-list-slice($list, 2), 'is' 'a' 'list', 'Discard first item'); + @include assert-equal(iro-list-slice($list, 1, 3), 'this' 'is' 'a', 'Keep first 3 items'); + @include assert-equal(iro-list-slice($list, 2, 3), 'is' 'a', 'Extract list from index 2 to 3'); + @include assert-equal(iro-list-slice($list, -1, -1), join((), 'list'), 'Keep last item'); + @include assert-equal(iro-list-slice($list, -1, 1), 'list' 'this', 'Extract first and last item'); + } + + @include it('iro-list-prepend') { + $list: 'this' 'is' 'a' 'list'; + + @include assert-equal(iro-list-prepend($list, 'and'), 'and' 'this' 'is' 'a' 'list', 'Prepend "and"'); + @include assert-equal(iro-list-prepend($list, 2), 2 'this' 'is' 'a' 'list', 'Prepend 2'); + } + + @include it('iro-quicksort') { + @include assert-equal(iro-quicksort(1 2 3 4 5), 1 2 3 4 5, 'Already sorted list of 5 items'); + @include assert-equal(iro-quicksort(1 3 2), 1 2 3, 'Random list of 3 items'); + @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'); + @include assert-equal(iro-quicksort(1 1 1 1), 1 1 1 1, 'List of 4 identical items'); + } + + @include it('iro-map-get-default') { + $map: ('key': 'value', 'another': 'item'); + + @include assert-equal(iro-map-get-default($map, 'another', 0), map-get($map, 'another'), 'Get existing value'); + @include assert-equal(iro-map-get-default($map, 'index', 'nothing'), 'nothing', 'Get missing value'); + } + + @include it('iro-map-get-deep') { + $map: ( + 'key': 'value', + 'sub': ( + 'item1': 1, + 'item2': 2, + 'subsub': ( + 'item1': 11, + 'item2': 12, + ) + ) + ); + + @include assert-equal(iro-map-get-deep($map, 'key'), map-get($map, 'key'), 'Get value in root level'); + @include assert-equal(iro-map-get-deep($map, 'sub' 'item1'), map-get(map-get($map, 'sub'), 'item1'), 'Get value in first level'); + @include assert-equal(iro-map-get-deep($map, 'sub' 'item2'), map-get(map-get($map, 'sub'), 'item2'), 'Get value in first level'); + @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'); + @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'); + } + + @include it('iro-map-merge-recursive') { + $map1: ( + 'key': 'value', + 'sub': ( + 'item1': 1, + 'item3': 2 + ) + ); + $map2: ( + 'another': 'item', + 'sub': ( + 'item1': 0, + 'item2': 1 + ) + ); + + $expected: ( + 'key': 'value', + 'another': 'item', + 'sub': ( + 'item1': 0, + 'item2': 1, + 'item3': 2 + ) + ); + + @include assert-equal(iro-map-merge-recursive($map1, $map2), $expected); + } + + @include it('iro-strip-unit') { + @include assert-true(unitless(iro-strip-unit(1em)), 'Remove unit from 1em'); + @include assert-true(unitless(iro-strip-unit(2rem)), 'Remove unit from 2rem'); + @include assert-true(unitless(iro-strip-unit(3px)), 'Remove unit from 3px'); + @include assert-true(unitless(iro-strip-unit(4)), 'Remove unit from 4'); + @include assert-true(unitless(iro-strip-unit(5pt)), 'Remove unit from 5pt'); + } + + @include it('iro-px-to-rem') { + @include assert-equal(iro-px-to-rem(16px, 16px), 1rem, 'Convert 16px'); + @include assert-equal(iro-px-to-rem(32px, 16px), 2rem, 'Convert 16px'); + @include assert-equal(iro-px-to-rem(8px, 16px), 0.5rem, 'Convert 16px'); + } +} -- cgit v1.2.3-54-g00ecf