blob: 73c874dc96a60a424c66248f186f93358b33a858 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#! /usr/bin/env dbqn
"usage: exe name [opts --] [tests]"!1≤≠•args
# BQN is called with the first argument, or all up to the last --
files‿exe ← •args ⊔˜ 2 ∾˜ ⊑◶⟨1⌾⊑,«⊸(⊣-<)⟩ ∨`⌾⌽ •args≡¨<"--"
files ↩ ⟨"prim"⟩⍟(0=≠) files
Include ← ("! %"≢3⊸↑) ∧ (0<≠)◶0‿('#'≠⊑)
Cases ← Include¨⊸/ · •FLines "cases/"∾∾⟜".bqn"
c ← ∾ Cases¨ files
Trim ← ((∨`∧∨`⌾⌽)' '⊸≠)⊸/
i‿e ← <˘⍉> ('%'⊸= (∨´⊣)◶⟨"1"≍○<⊢, Trim¨(+`-2⊸×)⊸⊔⟩ ⊢)¨ c
lf ← @+10
code‿r‿err ← {inp⇐∾∾⟜lf¨i∾⟨""⟩} •SH exe
err ! 0≡code
rv ← (•BQN¨e) = (•BQN "⟨"∾r∾"⟩")
•Out (0<≠)◶⟨"All "∾(⍕≠c)∾" passed!"˙,(⍕≠)∾" failed!"˙⟩ /1≢¨rv
|