Prims - Implement round
authorFrank Duncan <frank@kank.net>
Sun, 1 May 2016 19:24:18 +0000 (14:24 -0500)
committerFrank Duncan <frank@kank.net>
Sun, 1 May 2016 19:24:29 +0000 (14:24 -0500)
src/main/parse.lisp
src/main/transpile.lisp
src/test/simpletests.lisp

index 640f8c5868357389d330d8634e0ecb4be87e0c29..957d177b54792e5a833f371a581b2a7d2c4ca26c 100644 (file)
@@ -271,7 +271,7 @@ DESCRIPTION:
 (defprim :random-float (:number))
 (defprim :random-xcor ())
 (defprim :random-ycor ())
-(defprim :round ())
+(defprim :round (t))
 (defprim :reset-ticks ())
 (defprim :lt (:number))
 (defprim :rt (:number))
index 3feedc2df85292309b56f95bc8d997647fbce667..c2a2087e9460699fe65e4b73f0b13ca170452df7 100644 (file)
@@ -169,6 +169,7 @@ DESCRIPTION:
 (defsimpleprim :random-float :reporter clnl-nvm:random-float)
 (defsimpleprim :random-xcor :reporter clnl-nvm:random-xcor)
 (defsimpleprim :random-ycor :reporter clnl-nvm:random-ycor)
+(defprim :round :reporter (lambda (n) `(ffloor (+ ,n 0.5d0))))
 (defsimpleprim :rt :command clnl-nvm:turn-right)
 (defsimpleprim :set :command cl:setf)
 (defsimpleprim :set-default-shape :command clnl-nvm:set-default-shape)
index 5b6294f08f9d97d3036417a874efcf0928989e21..f4ac4f96234459ad7c5000ef9f35d46648bab35a 100644 (file)
 
 (defsimplecommandtest "set-default-shapes 1" "crt 10 set-default-shape turtles \"sheep\" crt 10"
  "F0B80936630E8B597CB1088493E3765B5B4A2137")
+
+(defreportertestwithsetup "round 1" "crt 10" "[ round random-float 1000 ] of turtles"
+ "[264 551 807 834 47 117 999 259 87 963]"
+ "2048ED1C553B0342D5DE1302577394CD09DE88DA")
+
+(defsimplereportertest "round 2" "round 1.5" "2"
+ "E1DE30F072D785E0D0B59F28B0F7853E3D3E0D8B")
+
+(defsimplereportertest "round 3" "round 2.5" "3"
+ "E1DE30F072D785E0D0B59F28B0F7853E3D3E0D8B")