brainfuck: cleanup tests.
parent
167f4e789c
commit
b2dec21d3e
|
@ -1,9 +1,10 @@
|
|||
! Copyright (C) 2009 John Benediktsson
|
||||
! See http://factorcode.org/license.txt for BSD license
|
||||
|
||||
USING: brainfuck kernel io.streams.string math math.parser math.ranges
|
||||
quotations sequences tools.test ;
|
||||
IN: brainfuck.tests
|
||||
USING: brainfuck io.streams.string kernel literals math
|
||||
math.parser math.ranges sequences tools.test ;
|
||||
|
||||
IN: brainfuck
|
||||
|
||||
|
||||
[ "+" run-brainfuck ] must-infer
|
||||
|
@ -11,54 +12,74 @@ IN: brainfuck.tests
|
|||
|
||||
! Hello World!
|
||||
|
||||
[ "Hello World!\n" ] [ """++++++++++[>+++++++>++++++++++>+++>+<<<<-]
|
||||
>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
|
||||
------.--------.>+.>.""" get-brainfuck ] unit-test
|
||||
{ "Hello World!\n" } [
|
||||
"""
|
||||
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
|
||||
>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
|
||||
------.--------.>+.>.
|
||||
""" get-brainfuck
|
||||
] unit-test
|
||||
|
||||
! Addition (single-digit)
|
||||
|
||||
[ "8" ] [ "35" [ ",>++++++[<-------->-],[<+>-]<."
|
||||
get-brainfuck ] with-string-reader ] unit-test
|
||||
{ "8" } [
|
||||
"35" [
|
||||
",>++++++[<-------->-],[<+>-]<." get-brainfuck
|
||||
] with-string-reader
|
||||
] unit-test
|
||||
|
||||
! Multiplication (single-digit)
|
||||
|
||||
[ "8\0" ] [ "24" [ """,>,>++++++++[<------<------>>-]
|
||||
<<[>[>+>+<<-]>>[<<+>>-]<<<-]
|
||||
>>>++++++[<++++++++>-],<.>."""
|
||||
get-brainfuck ] with-string-reader ] unit-test
|
||||
{ "8\0" } [
|
||||
"24" [
|
||||
"""
|
||||
,>,>++++++++[<------<------>>-]
|
||||
<<[>[>+>+<<-]>>[<<+>>-]<<<-]
|
||||
>>>++++++[<++++++++>-],<.>.
|
||||
""" get-brainfuck
|
||||
] with-string-reader
|
||||
] unit-test
|
||||
|
||||
! Division (single-digit, integer)
|
||||
|
||||
[ "3" ] [ "62" [ """,>,>++++++[-<--------<-------->>]
|
||||
<<[
|
||||
>[->+>+<<]
|
||||
>[-<<-
|
||||
[>]>>>[<[>>>-<<<[-]]>>]<<]
|
||||
>>>+
|
||||
<<[-<<+>>]
|
||||
<<<]
|
||||
>[-]>>>>[-<<<<<+>>>>>]
|
||||
<<<<++++++[-<++++++++>]<."""
|
||||
get-brainfuck ] with-string-reader ] unit-test
|
||||
{ "3" } [
|
||||
"62" [
|
||||
"""
|
||||
,>,>++++++[-<--------<-------->>]
|
||||
<<[
|
||||
>[->+>+<<]
|
||||
>[-<<-
|
||||
[>]>>>[<[>>>-<<<[-]]>>]<<]
|
||||
>>>+
|
||||
<<[-<<+>>]
|
||||
<<<]
|
||||
>[-]>>>>[-<<<<<+>>>>>]
|
||||
<<<<++++++[-<++++++++>]<.
|
||||
""" get-brainfuck
|
||||
] with-string-reader
|
||||
] unit-test
|
||||
|
||||
! Uppercase
|
||||
|
||||
[ "A" ] [ "a\n" [ ",----------[----------------------.,----------]"
|
||||
{ "A" } [ "a\n" [ ",----------[----------------------.,----------]"
|
||||
get-brainfuck ] with-string-reader ] unit-test
|
||||
|
||||
! cat
|
||||
|
||||
[ "ABC" ] [ "ABC\0" [ ",[.,]" get-brainfuck ] with-string-reader ] unit-test
|
||||
{ "ABC" } [ "ABC\0" [ ",[.,]" get-brainfuck ] with-string-reader ] unit-test
|
||||
|
||||
! Squares of numbers from 0 to 100
|
||||
|
||||
100 [0,b] [ dup * number>string ] map "\n" join "\n" append 1quotation
|
||||
[ """++++[>+++++<-]>[<+++++>-]+<+[
|
||||
>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+
|
||||
>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]
|
||||
<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>
|
||||
[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]"""
|
||||
get-brainfuck ] unit-test
|
||||
${ 100 [0,b] [ dup * number>string ] map "\n" join "\n" append }
|
||||
[
|
||||
"""
|
||||
++++[>+++++<-]>[<+++++>-]+<+[
|
||||
>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+
|
||||
>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]
|
||||
<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>
|
||||
[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]
|
||||
""" get-brainfuck
|
||||
] unit-test
|
||||
|
||||
! fun with numbers: 2 + 2 = 5
|
||||
|
||||
|
|
Loading…
Reference in New Issue