]> gitweb.factorcode.org Git - factor.git/blob - basis/models/range/range-tests.factor
3d95f75198b88612595151d4eef643e45847e3c3
[factor.git] / basis / models / range / range-tests.factor
1 IN: models.range.tests
2 USING: arrays generic kernel math models namespaces sequences assocs
3 tools.test models.range ;
4
5 ! Test <range> 
6 : setup-range ( -- range ) 0 0 0 255 1 <range> ;
7 : setup-stepped-range ( -- range ) 0 0 0 255 2 <range> ;
8
9 ! clamp-value should not go past range ends
10 { 0   } [ -10 setup-range clamp-value ] unit-test
11 { 255 } [ 2000 setup-range clamp-value ] unit-test
12 { 14  } [ 14 setup-range clamp-value ] unit-test
13
14 ! step-value
15 { 14  } [ 15 setup-stepped-range step-value ] unit-test
16
17 ! range min/max/page values should be correct
18 { 0 } [ setup-range range-page-value ] unit-test
19 { 0 } [ setup-range range-min-value ] unit-test
20 { 255 } [ setup-range range-max-value ] unit-test
21
22 ! should be able to set the value within the range and get back
23 { 15 } [ setup-range 15 over set-range-value range-value ] unit-test
24 { 0 } [ setup-range -15 over set-range-value range-value ] unit-test
25 { 255 } [ setup-range 4000 over set-range-value range-value ] unit-test
26
27 ! should be able to change the range min/max/page value
28 { 1 } [ setup-range 1 over set-range-page-value range-page-value ] unit-test
29 { 50 } [ setup-range 50 over set-range-min-value range-min-value ] unit-test
30 { 4000 } [ setup-range 4000 over set-range-max-value range-max-value ] unit-test
31
32 ! should be able to move by positive and negative values
33 { 30 } [ setup-range 30 over move-by range-value ] unit-test
34 { 0 } [ setup-range 30 over move-by -30 over move-by range-value ] unit-test
35
36 ! should be able to move by a page of 10
37 { 10 } [
38     setup-range 10 over set-range-page-value
39     1 over move-by-page range-value
40 ] unit-test