]> gitweb.factorcode.org Git - factor.git/blob - extra/brainfuck/brainfuck-tests.factor
replace usages of <" with """
[factor.git] / extra / brainfuck / brainfuck-tests.factor
1 ! Copyright (C) 2009 John Benediktsson
2 ! See http://factorcode.org/license.txt for BSD license
3
4 USING: brainfuck kernel io.streams.string math math.parser math.ranges 
5 quotations sequences tools.test ;
6 IN: brainfuck.tests
7
8
9 [ "+" run-brainfuck ] must-infer
10 [ "+" get-brainfuck ] must-infer
11
12 ! Hello World!
13
14 [ "Hello World!\n" ] [ """++++++++++[>+++++++>++++++++++>+++>+<<<<-]
15                           >++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
16                           ------.--------.>+.>.""" get-brainfuck ] unit-test
17
18 ! Addition (single-digit)
19
20 [ "8" ] [ "35" [ ",>++++++[<-------->-],[<+>-]<." 
21           get-brainfuck ] with-string-reader ] unit-test
22
23 ! Multiplication (single-digit)
24
25 [ "8\0" ] [ "24" [ """,>,>++++++++[<------<------>>-]
26                     <<[>[>+>+<<-]>>[<<+>>-]<<<-]
27                     >>>++++++[<++++++++>-],<.>."""
28           get-brainfuck ] with-string-reader ] unit-test
29
30 ! Division (single-digit, integer)
31
32 [ "3" ] [ "62" [ """,>,>++++++[-<--------<-------->>]
33                     <<[
34                     >[->+>+<<]
35                     >[-<<-
36                     [>]>>>[<[>>>-<<<[-]]>>]<<]
37                     >>>+
38                     <<[-<<+>>]
39                     <<<]
40                     >[-]>>>>[-<<<<<+>>>>>]
41                     <<<<++++++[-<++++++++>]<."""
42            get-brainfuck ] with-string-reader ] unit-test 
43
44 ! Uppercase
45
46 [ "A" ] [ "a\n" [ ",----------[----------------------.,----------]"
47           get-brainfuck ] with-string-reader ] unit-test 
48
49 ! cat
50
51 [ "ABC" ] [ "ABC\0" [ ",[.,]" get-brainfuck ] with-string-reader ] unit-test
52
53 ! Squares of numbers from 0 to 100
54
55 100 [0,b] [ dup * number>string ] map "\n" join "\n" append 1quotation
56 [ """++++[>+++++<-]>[<+++++>-]+<+[
57      >[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+
58      >>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]
59      <<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>
60      [-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]"""
61   get-brainfuck ] unit-test
62
63