]> gitweb.factorcode.org Git - factor.git/commitdiff
dice: adding some tests, simplify a bit.
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 10 Dec 2014 16:46:15 +0000 (08:46 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 10 Dec 2014 16:46:15 +0000 (08:46 -0800)
extra/dice/dice-tests.factor [new file with mode: 0644]
extra/dice/dice.factor

diff --git a/extra/dice/dice-tests.factor b/extra/dice/dice-tests.factor
new file mode 100644 (file)
index 0000000..d86df95
--- /dev/null
@@ -0,0 +1,5 @@
+USING: math random tools.test ;
+IN: dice
+
+{ [ 0 1 [ 4 random + 1 + ] times ] } [ "1d4" parse-roll ] unit-test
+{ [ 0 15 [ 45 random + 1 + ] times ] } [ "15d45" parse-roll ] unit-test
index d12939f91ea220bd92e65fff148c8fe066e4d4c7..fc1793690a73a1f8a57d663eda056f8809e7b172 100644 (file)
@@ -1,14 +1,12 @@
 ! Copyright (C) 2010 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license
-
 USING: fry kernel lexer macros math math.parser peg.ebnf random
-sequences strings ;
-
+sequences ;
 IN: dice
 
 EBNF: parse-roll
 
-number = ([0-9])+    => [[ >string string>number ]]
+number = ([0-9])+    => [[ string>number ]]
 dice   = "d" number  => [[ second '[ _ random ] ]]
 roll   = number dice => [[ first2 '[ 0 _ [ @ + 1 + ] times ] ]]
 added  = "+" number  => [[ second '[ _ + ] ]]
@@ -20,5 +18,4 @@ rolls  = total | error
 
 MACRO: roll ( string -- ) parse-roll ;
 
-SYNTAX: ROLL: scan-token parse-roll append ;
-
+SYNTAX: ROLL: scan-token parse-roll append! ;