From 47215b093431b23fa9ff690c887e88baecfb8c35 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Wed, 13 Oct 2021 11:14:42 -0600 Subject: [PATCH] new failing macro test cases --- kiss/src/test/cases/MacroTestCase.hx | 8 ++++++++ kiss/src/test/cases/MacroTestCase.kiss | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/kiss/src/test/cases/MacroTestCase.hx b/kiss/src/test/cases/MacroTestCase.hx index 61da65ec..24454a22 100644 --- a/kiss/src/test/cases/MacroTestCase.hx +++ b/kiss/src/test/cases/MacroTestCase.hx @@ -32,4 +32,12 @@ class MacroTestCase extends Test { function testUndefMacro() { Assert.equals(11, andValue()); } + + function testRecursiveMacroFunction() { + _testRecursiveMacroFunction(); + } + + function testPrintAtMacroTime() { + _testPrintAtMacroTime(); + } } diff --git a/kiss/src/test/cases/MacroTestCase.kiss b/kiss/src/test/cases/MacroTestCase.kiss index d798e3f9..de9e87cd 100644 --- a/kiss/src/test/cases/MacroTestCase.kiss +++ b/kiss/src/test/cases/MacroTestCase.kiss @@ -49,3 +49,25 @@ (undefMacro and) (function and [a b] (+ a b)) (function andValue [] (and 5 6)) + +(defMacro listOfExp [exp times] + (let [times (eval times)] + (_listOfExp exp times))) + +(defMacroFunction _listOfExp [exp times] + (case times + (1 `[,exp]) + (otherwise `(.concat ,(_listOfExp exp 1) ,(_listOfExp exp (- times 1)))))) + +(function _testRecursiveMacroFunction [] + (Assert.equals (Std.string [10 10 10 10 10 10 10 10 10 10]) (Std.string (listOfExp 10 10)))) + +(defMacroFunction printAtMacroTime [] + ~"Print at macro time should work just fine" + `null) + +(defMacro _testPrintAtMacroTimeMacro [] + (printAtMacroTime)) + +(function testPrintAtMacroTime [] + (_testPrintAtMacroTimeMacro)) \ No newline at end of file