-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
∆NS_QA.aplf
55 lines (50 loc) · 4.3 KB
/
∆NS_QA.aplf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
∆NS_QA←{
New←⎕NS∘⍬⊣⎕EX
Is←⍵ Stop∘(⎕JSON⍠'Dialect' 'JSON5')
ok←⍬
⍝ monadic
ok,←'{}'Is ∆NS'' ⍝ nothing
ok,←'{name1:"global1"}'Is ∆NS'name1' ⍝ use global
ok,←'{name1:"global1"}'Is ∆NS⊂'name1' ⍝ use global encl
ok,←'{name1:"global1",name2:"global2"}'Is ∆NS'name1' 'name2' ⍝ use globals
ok,←'{name1:"global1",name2:"global2"}'Is ∆NS↑'name1' 'name2' ⍝ use globals mat
ok,←'{name1:"value1"}'Is ∆NS⊂'name1' 'value1' ⍝ set val
ok,←'{name1:"value1",name2:"value2"}'Is ∆NS('name1' 'value1')('name2' 'value2') ⍝ set vals
ok,←'{name1:"value1",name2:"value2"}'Is ∆NS(↑'name1' 'name2')('value1' 'value2') ⍝ set vals mat
ok,←'{name1:"value1",name2:"global2"}'Is ∆NS('name1' 'value1')'name2' ⍝ set val and use global
ok,←'{name1:"value1",name2:"global2"}'Is ∆NS('name1' 'value1')(⊂'name2') ⍝ set val and use global encl
⍝ dotted ((⎕NS ⍬).⎕NG)
ok,←'{}'Is(⎕NS ⍬)_ ∆NS'' ⍝ nothing
ok,←'{name1:"global1"}'Is(⎕NS ⍬)_ ∆NS'name1' ⍝ use global
ok,←'{name1:"global1"}'Is(⎕NS ⍬)_ ∆NS⊂'name1' ⍝ use global encl
ok,←'{name1:"global1",name2:"global2"}'Is(⎕NS ⍬)_ ∆NS'name1' 'name2' ⍝ use globals
ok,←'{name1:"global1",name2:"global2"}'Is(⎕NS ⍬)_ ∆NS↑'name1' 'name2' ⍝ use globals mat
ok,←'{name1:"value1"}'Is(⎕NS ⍬)_ ∆NS⊂'name1' 'value1' ⍝ set val
ok,←'{name1:"value1",name2:"value2"}'Is(⎕NS ⍬)_ ∆NS('name1' 'value1')('name2' 'value2') ⍝ set vals
ok,←'{name1:"value1",name2:"value2"}'Is(⎕NS ⍬)_ ∆NS(↑'name1' 'name2')('value1' 'value2') ⍝ set vals mat
ok,←'{name1:"value1",name2:"global2"}'Is(⎕NS ⍬)_ ∆NS('name1' 'value1')'name2' ⍝ set val and use global
ok,←'{name1:"value1",name2:"global2"}'Is(⎕NS ⍬)_ ∆NS('name1' 'value1')(⊂'name2') ⍝ set val and use global encl
⍝ ref ⍺
ok,←'{}'Is(⎕NS ⍬)∆NS'' ⍝ nothing
ok,←'{name1:"global1"}'Is(⎕NS ⍬)∆NS'name1' ⍝ use global
ok,←'{name1:"global1"}'Is(⎕NS ⍬)∆NS⊂'name1' ⍝ use global encl
ok,←'{name1:"global1",name2:"global2"}'Is(⎕NS ⍬)∆NS'name1' 'name2' ⍝ use globals
ok,←'{name1:"global1",name2:"global2"}'Is(⎕NS ⍬)∆NS↑'name1' 'name2' ⍝ use globals mat
ok,←'{name1:"value1"}'Is(⎕NS ⍬)∆NS⊂'name1' 'value1' ⍝ set val
ok,←'{name1:"value1",name2:"value2"}'Is(⎕NS ⍬)∆NS('name1' 'value1')('name2' 'value2') ⍝ set vals
ok,←'{name1:"value1",name2:"value2"}'Is(⎕NS ⍬)∆NS(↑'name1' 'name2')('value1' 'value2') ⍝ set vals mat
ok,←'{name1:"value1",name2:"global2"}'Is(⎕NS ⍬)∆NS('name1' 'value1')'name2' ⍝ set val and use global
ok,←'{name1:"value1",name2:"global2"}'Is(⎕NS ⍬)∆NS('name1' 'value1')(⊂'name2') ⍝ set val and use global encl
⍝ name ⍺
ok,←'{}'Is name⊣(New'name')∆NS'' ⍝ nothing
ok,←'{name1:"global1"}'Is name⊣(New'name')∆NS'name1' ⍝ use global
ok,←'{name1:"global1"}'Is name⊣(New'name')∆NS⊂'name1' ⍝ use global
ok,←'{name1:"global1",name2:"global2"}'Is name⊣(New'name')∆NS'name1' 'name2' ⍝ use globals
ok,←'{name1:"global1",name2:"global2"}'Is name⊣(New'name')∆NS↑'name1' 'name2' ⍝ use globals mat
ok,←'{name1:"value1"}'Is name⊣(New'name')∆NS⊂'name1' 'value1' ⍝ set val
ok,←'{name1:"value1",name2:"value2"}'Is name⊣(New'name')∆NS('name1' 'value1')('name2' 'value2') ⍝ set vals
ok,←'{name1:"value1",name2:"value2"}'Is name⊣(New'name')∆NS(↑'name1' 'name2')('value1' 'value2') ⍝ set vals mat
ok,←'{name1:"value1",name2:"global2"}'Is name⊣(New'name')∆NS('name1' 'value1')'name2' ⍝ set val and use global
ok,←'{name1:"value1",name2:"global2"}'Is name⊣(New'name')∆NS('name1' 'value1')(⊂'name2') ⍝ set val and use global encl
∧/ok
}