Mapping models
parent
58545d5756
commit
55fb33f6e1
|
@ -1,6 +1,6 @@
|
||||||
IN: temporary
|
IN: temporary
|
||||||
USING: arrays generic kernel math models namespaces sequences
|
USING: arrays generic kernel math models namespaces sequences
|
||||||
tools.test ;
|
tools.test assocs ;
|
||||||
|
|
||||||
TUPLE: model-tester hit? ;
|
TUPLE: model-tester hit? ;
|
||||||
|
|
||||||
|
@ -106,3 +106,34 @@ f <history> "history" set
|
||||||
[ { 4 5 } ] [ "c" get model-value ] unit-test
|
[ { 4 5 } ] [ "c" get model-value ] unit-test
|
||||||
|
|
||||||
[ ] [ "c" get deactivate-model ] unit-test
|
[ ] [ "c" get deactivate-model ] unit-test
|
||||||
|
|
||||||
|
! Test mapping
|
||||||
|
[ ] [
|
||||||
|
[
|
||||||
|
1 <model> "one" set
|
||||||
|
2 <model> "two" set
|
||||||
|
] H{ } make-assoc
|
||||||
|
<mapping> "m" set
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
[ ] [ "m" get activate-model ] unit-test
|
||||||
|
|
||||||
|
[ H{ { "one" 1 } { "two" 2 } } ] [
|
||||||
|
"m" get model-value
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
[ ] [
|
||||||
|
H{ { "one" 3 } { "two" 4 } }
|
||||||
|
"m" get set-model
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
[ H{ { "one" 3 } { "two" 4 } } ] [
|
||||||
|
"m" get model-value
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
[ H{ { "one" 5 } { "two" 4 } } ] [
|
||||||
|
5 "one" "m" get mapping-assoc at set-model
|
||||||
|
"m" get model-value
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
[ ] [ "m" get deactivate-model ] unit-test
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (C) 2006, 2007 Slava Pestov.
|
! Copyright (C) 2006, 2007 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: generic kernel math sequences timers arrays ;
|
USING: generic kernel math sequences timers arrays assocs ;
|
||||||
IN: models
|
IN: models
|
||||||
|
|
||||||
TUPLE: model value connections dependencies ref ;
|
TUPLE: model value connections dependencies ref ;
|
||||||
|
@ -109,6 +109,22 @@ M: compose model-activated model-changed ;
|
||||||
|
|
||||||
M: compose set-model [ set-model ] set-composed-value ;
|
M: compose set-model [ set-model ] set-composed-value ;
|
||||||
|
|
||||||
|
TUPLE: mapping assoc ;
|
||||||
|
|
||||||
|
: <mapping> ( models -- mapping )
|
||||||
|
f mapping construct-model
|
||||||
|
over values over set-model-dependencies
|
||||||
|
tuck set-mapping-assoc ;
|
||||||
|
|
||||||
|
M: mapping model-changed
|
||||||
|
dup mapping-assoc [ model-value ] assoc-map
|
||||||
|
swap delegate set-model ;
|
||||||
|
|
||||||
|
M: mapping model-activated model-changed ;
|
||||||
|
|
||||||
|
M: mapping set-model
|
||||||
|
mapping-assoc [ swapd at set-model ] curry assoc-each ;
|
||||||
|
|
||||||
TUPLE: history back forward ;
|
TUPLE: history back forward ;
|
||||||
|
|
||||||
: reset-history ( history -- )
|
: reset-history ( history -- )
|
||||||
|
|
Loading…
Reference in New Issue