]> gitweb.factorcode.org Git - factor.git/blob - extra/sorting/extras/extras-tests.factor
core: Rename iota to <iota> so we can have TUPLE: iota ... ; instead of TUPLE: iota...
[factor.git] / extra / sorting / extras / extras-tests.factor
1 USING: arrays kernel math math.order random sequences
2 tools.test ;
3 IN: sorting.extras
4
5 { { 0 2 1 } } [ { 10 30 20 } [ <=> ] argsort ] unit-test
6 { { 2 0 1 } } [
7     { "hello" "goodbye" "yo" } [ [ length ] bi@ <=> ] argsort
8 ] unit-test
9
10 { { "blue" "green" "purple" } } [
11     { "green" "blue" "purple" } [ length ] map-sort
12 ] unit-test
13 { 1 { 1 2 3 4 } } [ 1 { 4 2 1 3 } [ dupd + ] map-sort ] unit-test
14
15 { 0 } [ 0 { 1 } bisect-right ] unit-test
16 { 1 } [ 1 { 1 } bisect-right ] unit-test
17 { 1 } [ 2 { 1 } bisect-right ] unit-test
18
19 { 0 } [ 0 { 1 } bisect-left ] unit-test
20 { 0 } [ 1 { 1 } bisect-left ] unit-test
21 { 1 } [ 2 { 1 } bisect-left ] unit-test
22
23 { { 0 1 2 3 4 5 6 7 8 9 } } [
24     { }
25     10 <iota> >array randomize
26     [ swap insort-right ] each
27 ] unit-test
28
29 { V{ 0 1 2 3 4 5 6 7 8 9 } } [
30     V{ } clone
31     10 <iota> >array randomize
32     [ swap insort-right! ] each
33 ] unit-test