tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

consumer_fizzbuzz_lexical_bundle_run.tri (1049B)


      1 !import "source.module" !Local
      2 !import "consumers.structural" S
      3 !import "prelude" !Local
      4 !import "io" !Local
      5 root = "__ROOT__"
      6 input = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]
      7 expected = [1 2 "Fizz" 4 "Buzz" "Fizz" 7 8 "Fizz" "Buzz" 11 "Fizz" 13 14 "FizzBuzz"]
      8 checks work program = foldl append "" [
      9   (matchBool "empty-ok/" "empty-BAD/" (equal? (work t) t))
     10   (matchBool "one-ok/" "one-BAD/" (equal? (work [1]) [1]))
     11   (matchBool "three-ok/" "three-BAD/" (equal? (work [1 2 3]) [1 2 "Fizz"]))
     12   (matchBool "packed-expected/" "packed-DIFFER/" (equal? (work input) expected))
     13   (matchBool "packed-interpreter" "packed-vs-interpreter-DIFFER"
     14     (equal? (work input) (resultOr (t t) (S.runConsumer program input))))]
     15 main = io (onResult_ (sourceModuleLoadSelected root "scpBase" "workLexFizzBuzz")
     16   (problem : putStrLn (append "worker-load-error=" problem))
     17   (work : onResult_ (sourceModuleLoadSelected root "scpBase" "authoredFizzBuzz")
     18     (problem : putStrLn (append "ir-load-error=" problem))
     19     (program : putStrLn (checks work program))))
     20 main