naive: test filtrations

This commit is contained in:
drbeefsupreme 2021-06-04 17:50:07 -04:00
parent 28bd682377
commit 755fb61d62
No known key found for this signature in database
GPG Key ID: B70D5683DE7F9EFC

View File

@ -72,6 +72,9 @@
=^ f15 state (n state %bat q:(gen-tx 2 dn-spawn %losrut-skey-1)) =^ f15 state (n state %bat q:(gen-tx 2 dn-spawn %losrut-skey-1))
[:(welp f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15) state] [:(welp f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15) state]
:: ::
:: TODO: add an "evil galaxy" whose points attempt to perform actions
:: on ~rut's points
::
:: ~dopbud is for testing L1 ownership with L2 spawn proxy :: ~dopbud is for testing L1 ownership with L2 spawn proxy
:: ::
++ init-dopbud ++ init-dopbud
@ -134,9 +137,10 @@
+$ event [=rank owner=? nonce=? =dominion:naive =proxy:naive =tx-type] +$ event [=rank owner=? nonce=? =dominion:naive =proxy:naive =tx-type]
+$ event-list (list event) +$ event-list (list event)
+$ success-map (map event ?) +$ success-map (map event ?)
+$ event-jar (jar @p event)
:: ::
++ make-success-map ++ make-success-map
=/ =event-list make-event-list |= =event-list
=| =success-map =| =success-map
|^ |^
?~ event-list success-map ?~ event-list success-map
@ -241,12 +245,78 @@
:: ::
-- --
:: ::
++ filter-tx-type
|= [=event-list =tx-type]
|^
(skim event-list filter)
++ filter
|= =event ^- ?
?: =(tx-type.event tx-type)
%.y
%.n
--
::
++ filter-proxy
|= [=event-list =proxy:naive]
|^
(skim event-list filter)
++ filter
|= =event ^- ?
?: =(proxy.event proxy)
%.y
%.n
--
::
++ filter-rank
|= [=event-list =rank]
|^
(skim event-list filter)
++ filter
|= =event ^- ?
?: =(rank.event rank)
%.y
%.n
--
::
++ filter-owner
|= [=event-list owner=?]
|^
(skim event-list filter)
++ filter
|= =event ^- ?
?: =(owner.event owner)
%.y
%.n
--
::
++ filter-nonce
|= [=event-list nonce=?]
|^
(skim event-list filter)
++ filter
|= =event ^- ?
?: =(nonce.event nonce)
%.y
%.n
--
::
++ filter-dominion
|= [=event-list =dominion:naive]
|^
(skim event-list filter)
++ filter
|= =event ^- ?
?: =(dominion.event dominion)
%.y
%.n
--
::
++ make-event-list ^- event-list ++ make-event-list ^- event-list
=| =event-list =| =event-list
=/ rank-i 1 =/ rank-i 1
|- |-
?: (gth rank-i 3) ?: (gth rank-i 3)
event-list (remove-wrong-dominion event-list)
=/ owner-i 0 =/ owner-i 0
|- |-
?. (lte owner-i 1) ?. (lte owner-i 1)
@ -279,6 +349,25 @@
event-list event-list
== ==
:: ::
++ remove-wrong-dominion
|= in=event-list
=| =event-list
|-
?~ in event-list
=/ current-event i.in
?: ?& =(rank.current-event %galaxy)
!=(dominion.current-event %l1)
==
$(in t.in)
?: ?& =(rank.current-event %planet)
=(dominion.current-event %spawn)
==
$(in t.in)
%= $
in t.in
event-list current-event^event-list
==
::
++ num-to-flag ++ num-to-flag
|= val=@ud ^- ? |= val=@ud ^- ?
?+ val !! ?+ val !!
@ -328,6 +417,25 @@
%11 %set-transfer-proxy %11 %set-transfer-proxy
== ==
:: ::
:: the following is for figuring out what points in ~rut
:: should perform which events. maybe should be its own
:: core?
::
++ gen-rut-mgmt-jar
=/ mgmt-proxies %+ filter-owner
%+ filter-tx-type
make-event-list
%set-management-proxy
%.y
=/ own-only (filter-proxy mgmt-proxies %own)
=/ =success-map (make-success-map own-only)
=/ planet-events (filter-rank own-only %planet)
=/ star-events (filter-rank own-only %star)
=/ galaxy-events (filter-rank own-only %galaxy)
=| mgmt-jar (jar @p event)
:: how to add to the jar successively? probably ;< ?
[planet-events star-events galaxy-events success-map]
::
-- --
:: ::
++ l1 ++ l1
@ -429,6 +537,23 @@
|% |%
:: new tests :: new tests
:: ::
++ test-rut-mgmt-proxies ^- tang
=, l2-event-gen
::
~& gen-rut-mgmt-jar
=| =^state:naive
=^ f state (init-rut-full state)
=/ initial-state state
::
:: |-
:: ?~ mgmt-proxies ~
:: =/ current-event i.mgmt-proxies
%+ expect-eq
!> 1
!> 1
:: =| =^state:naive
:: =^ f state (init-rut-full state)
::
++ test-marbud-l2-change-keys-new ^- tang ++ test-marbud-l2-change-keys-new ^- tang
=/ new-keys [%configure-keys suit encr auth |] =/ new-keys [%configure-keys suit encr auth |]
=| =^state:naive =| =^state:naive