From 2ff502e46f9d7e6929059479da2e160d0cbbf5de Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Tue, 8 Sep 2020 21:14:26 -0400 Subject: Organize tests scripts a little better and add README --- test/dz_rt | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 test/dz_rt (limited to 'test/dz_rt') diff --git a/test/dz_rt b/test/dz_rt new file mode 100755 index 00000000..f83a787d --- /dev/null +++ b/test/dz_rt @@ -0,0 +1,60 @@ +#!/usr/bin/env dbqn + +# Compile and run the primitive implementations, and prim.bqn + +impl ← •LNS •path∾"../src/r.bqn" + +drun ← •EX •path∾"../dc.bqn" + +chrs←⟨ + "!+-×÷⋆√⌊⌈∧∨¬|=≠≤<>≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔" + "˙˜˘¨⌜⁼´˝`" + "∘⊸⟜○⌾⎉⚇⍟◶⊘" +⟩ +nc ← ≠¨chrs +chr ← ∾chrs +itr ← 0⥊˜≠chr + +init ← " "⊸∾¨(/⟜"_"¨nc/0‿1‿1)∾¨(nc/"FMD")∾¨(nc+´⊸↑⥊"ABC"∾⌜•a) +post ← ∾⟜" "¨/⟜"_"¨nc/0‿0‿1 +names ← init∾¨'0'∾¨post + +Inc ← { + i←⊑chr⊐𝕩 + n←0 ⋄ itr↩{n↩1+𝕩}⌾(i⊑⊢)itr + names↩((i⊑init)∾('0'+n)∾i⊑post)⌾(i⊑⊢)names +} + +# built-in assumptions +Mod ← {((⊑chr⊐𝕨)⊑names) ∾ " ← " ∾ 𝕩} + +pre ← ⟨ + "IsArray ← 0≠≡" + "Type ← ⟨⟩⥊0⊸⥊" + "Log ← ⋆⁼" + "GroupLen← ≠¨⊔" + "GroupOrd← ∾⊔∘⊢" + '!' Mod "{𝕩 ⋄ ≤1}⍟(1≢⊢)" +⟩∾Mod⟜⥊¨ "+-×÷⋆⌊=≤≢⥊⊑↕⌜`⊘" + + +# checks if line is a builtin redefinition +E_isdef ← (3≤≠)◶⟨0,∧´⟨chr," ","←↩"⟩∊˜¨3⊸↑⟩ + +# removes comments and replaces built-ins with names +E_proc ← { + l←≠chr + q←≠`𝕩='"' ⋄ q∨↩≠`q<𝕩=''' ⋄ f←¬∨`q<𝕩='#' + ∾ (((l×f/q)+chr⊸⊐) (≥⟜l)◶⟨⊑⟜names,⥊∘⊢⟩¨ ⊢) f/𝕩 +} + +E_redef ← { # handles [fmd] [←↩] + tail ← E_proc 3↓𝕩 # must use old def + Inc ⊑𝕩 + (E_proc 1↑𝕩) ∾ "←" ∾ tail +} + +pre ∾↩ E_isdef◶E_proc‿E_redef¨ impl +t ← (¬∘⊑':'∊⊢)¨⊸/ 3⊸↓⌾(3⊸⊑) •LNS •path∾"prim.bqn" +res ← DRun ∾ ∾⟜(@+10)¨ pre ∾ E_proc¨ t +• ← ("All "∾(⍕≠res)∾" passed!")⍟(0=≠) /res -- cgit v1.2.3