factor/extra/brainfuck/brainfuck-tests.factor

64 lines
1.9 KiB
Factor
Raw Normal View History

2009-06-01 14:21:14 -04:00
! 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
2009-09-20 23:42:40 -04:00
quotations sequences tools.test ;
IN: brainfuck.tests
2009-06-01 14:21:14 -04:00
[ "+" run-brainfuck ] must-infer
[ "+" get-brainfuck ] must-infer
2009-06-01 17:00:37 -04:00
! Hello World!
2009-09-20 23:42:40 -04:00
[ "Hello World!\n" ] [ """++++++++++[>+++++++>++++++++++>+++>+<<<<-]
2009-06-01 14:21:14 -04:00
>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
2009-09-20 23:42:40 -04:00
------.--------.>+.>.""" get-brainfuck ] unit-test
2009-06-01 14:21:14 -04:00
2009-06-01 17:00:37 -04:00
! Addition (single-digit)
[ "8" ] [ "35" [ ",>++++++[<-------->-],[<+>-]<."
get-brainfuck ] with-string-reader ] unit-test
! Multiplication (single-digit)
2009-09-20 23:42:40 -04:00
[ "8\0" ] [ "24" [ """,>,>++++++++[<------<------>>-]
2009-06-01 17:00:37 -04:00
<<[>[>+>+<<-]>>[<<+>>-]<<<-]
2009-09-20 23:42:40 -04:00
>>>++++++[<++++++++>-],<.>."""
2009-06-01 17:00:37 -04:00
get-brainfuck ] with-string-reader ] unit-test
! Division (single-digit, integer)
2009-09-20 23:42:40 -04:00
[ "3" ] [ "62" [ """,>,>++++++[-<--------<-------->>]
2009-06-01 17:00:37 -04:00
<<[
>[->+>+<<]
>[-<<-
[>]>>>[<[>>>-<<<[-]]>>]<<]
>>>+
<<[-<<+>>]
<<<]
>[-]>>>>[-<<<<<+>>>>>]
2009-09-20 23:42:40 -04:00
<<<<++++++[-<++++++++>]<."""
2009-06-01 17:00:37 -04:00
get-brainfuck ] with-string-reader ] unit-test
! Uppercase
[ "A" ] [ "a\n" [ ",----------[----------------------.,----------]"
get-brainfuck ] with-string-reader ] unit-test
! cat
[ "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
2009-09-20 23:42:40 -04:00
[ """++++[>+++++<-]>[<+++++>-]+<+[
>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+
>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]
<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>
2009-09-20 23:42:40 -04:00
[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]"""
get-brainfuck ] unit-test
2009-06-01 17:00:37 -04:00