blob: c86cf62134ac051cc6c5a62b7c947e82c3e56bea (
plain)
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
|
#! /usr/bin/env dbqn
nc‿rt‿ref ← "-nocomp"‿"-rt"‿"-ref" ∊ •args
files ← "simple"‿"syntax"‿"prim"⍟(0=≠) ('-'≠⊑)¨⊸/ •args
"Can't test runtime without the compiler!" ! ¬nc∧rt∨ref
Native ← •BQN
exec ← {
nc ? Native ;
# Otherwise compiled
⟨DRun⟩ ← •Import "dc.bqn"
r ← {
ref ? •Import "ref.bqn" ; # Reference implementations
rt ? •Import "dzrt.bqn" ; # Self-hosted
•BQN∘⥊¨ ∾ •Import "../src/glyphs.bqn" # Native runtime
}
r⊸DRun
}
Cases ← (0<≠)◶0‿('#'≠⊑)¨⊸/ · •FLines "cases/"∾∾⟜".bqn"
c ← ∾ Cases¨ files
Trim ← ((∨`∧∨`⌾⌽)' '⊸≠)⊸/
M ← {e‿b:
Msg ← {∾⟨
"""",b,""": expected "
"to fail"⍟("!"⊸≡)e
" but "
0⊸≡◶⟨"received "∾2•Fmt⊑,"evaluation failed"⟩𝕩
⥊@+10
⟩}
("!"⊸≡◶⟨<Native,0˙⟩ e) ≢◶""‿Msg <∘Exec⎊0 b
}
r ← (M '%'⊸= (∨´⊣)◶⟨"1"⋈⊢, Trim¨(+`-2⊸×)⊸⊔⟩ ⊢)¨ c
•Out ("All "∾(•Repr≠c)∾" passed!")⍟(0=≠) ¯1↓∾r
|