]> gitweb.factorcode.org Git - factor.git/blob - basis/models/compose/compose-tests.factor
Change a throw to rethrow so that we don't lose the original stack trace
[factor.git] / basis / models / compose / compose-tests.factor
1 USING: arrays generic kernel math models namespaces sequences assocs\r
2 tools.test models.compose accessors locals ;\r
3 IN: models.compose.tests\r
4 \r
5 ! Test compose\r
6 [ ] [\r
7     1 <model> "a" set\r
8     2 <model> "b" set\r
9     "a" get "b" get 2array <compose> "c" set\r
10 ] unit-test\r
11 \r
12 [ ] [ "c" get activate-model ] unit-test\r
13 \r
14 [ { 1 2 } ] [ "c" get value>> ] unit-test\r
15 \r
16 [ ] [ 3 "b" get set-model ] unit-test\r
17 \r
18 [ { 1 3 } ] [ "c" get value>> ] unit-test\r
19 \r
20 [ ] [ { 4 5 } "c" get set-model ] unit-test\r
21 \r
22 [ { 4 5 } ] [ "c" get value>> ] unit-test\r
23 \r
24 [ ] [ "c" get deactivate-model ] unit-test\r
25 \r
26 TUPLE: an-observer { i integer } ;\r
27 \r
28 M: an-observer model-changed nip [ 1+ ] change-i drop ;\r
29 \r
30 [ 1 0 ] [\r
31     [let* | m1 [ 1 <model> ]\r
32             m2 [ 2 <model> ]\r
33             c [ { m1 m2 } <compose> ]\r
34             o1 [ an-observer new ]\r
35             o2 [ an-observer new ] |\r
36         \r
37         o1 m1 add-connection\r
38         o2 m2 add-connection\r
39 \r
40         c activate-model\r
41     \r
42         "OH HAI" m1 set-model\r
43         o1 i>>\r
44         o2 i>>\r
45     ]\r
46 ] unit-test