:: TODO: move +ordered-map to zuse :: /+ *test /= ames /: /===/sys/vane/ames /!noun/ :: =/ items-from-keys |= keys=(list @ud) %+ turn keys |= k=@ud [k `@tas`(add k %a)] :: =/ test-items=(list [@ud @tas]) (items-from-keys (gulf 0 6)) :: =/ atom-map ((ordered-map:ames @ud @tas) lte) :: |% ++ test-ordered-map-gas ^- tang :: =/ a=(tree [@ud @tas]) (gas:atom-map ~ test-items) :: %+ expect-eq !> %.y !> (check-balance:atom-map a) :: ++ test-ordered-map-tap ^- tang :: =/ a=(tree [@ud @tas]) (gas:atom-map ~ test-items) :: %+ expect-eq !> test-items !> (tap:atom-map a) :: ++ test-ordered-map-pop ^- tang :: =/ a=(tree [@ud @tas]) (gas:atom-map ~ test-items) :: %+ expect-eq !> [[0 %a] (gas:atom-map ~ (items-from-keys (gulf 1 6)))] !> (pop:atom-map a) :: ++ test-ordered-map-peek ^- tang :: =/ a=(tree [@ud @tas]) (gas:atom-map ~ test-items) :: %+ expect-eq !> `[0 %a] !> (peek:atom-map a) :: ++ test-ordered-map-nip ^- tang :: =/ a=(tree [@ud @tas]) (gas:atom-map ~ test-items) :: =/ b (nip:atom-map a) :: %+ expect-eq !> (gas:atom-map ~ ~[[0^%a] [1^%b] [2^%c] [3^%d] [4^%e] [5^%f]]) !> b :: ++ test-ordered-map-traverse ^- tang :: =/ a=(tree [@ud @tas]) (gas:atom-map ~ test-items) :: =/ b %- (traverse:atom-map ,(list [@ud @tas])) :* a state=~ :: |= [s=(list [@ud @tas]) k=@ud v=@tas] :+ ?: =(3 k) ~ [~ `@tas`+(v)] =(5 k) [[k v] s] == :: ;: weld %+ expect-eq !> (gas:atom-map ~ ~[[0^%b] [1^%c] [2^%d] [4^%f] [5^%g] [6^%g]]) !> +.b :: %+ expect-eq !> (flop (items-from-keys (gulf 0 5))) !> -.b == :: ++ test-ordered-map-uni ^- tang :: =/ a=(tree [@ud @tas]) (gas:atom-map ~ (scag 4 test-items)) =/ b=(tree [@ud @tas]) (gas:atom-map ~ (slag 4 test-items)) :: =/ c (uni:atom-map a b) :: %+ expect-eq !> (gas:atom-map ~ test-items) !> c --