Extra test
authorMarius Gavrilescu <marius@ieval.ro>
Sat, 10 Feb 2018 18:25:37 +0000 (18:25 +0000)
committerMarius Gavrilescu <marius@ieval.ro>
Sat, 10 Feb 2018 18:25:37 +0000 (18:25 +0000)
t/App-Scheme79asm.t

index d95980bb3199669ef9d3f2a3fabcf448eee1aed8..7da1c058420cf9cf4758bd8fab3871a14471482a 100644 (file)
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 2;
+use Test::More tests => 3;
 BEGIN { use_ok('App::Scheme79asm') };
 
 sub run_test {
@@ -15,12 +15,26 @@ sub run_test {
        is $actual, $expected, $name
 }
 
-run_test {addr_bits => 5}, '(quoted . (symbol . 5))', <<'', '(QUOTE 5)';
-mem[0] <= 0;
-mem[1] <= 0;
-mem[2] <= 8'b00100000;
-mem[3] <= 8'b00100000;
-mem[4] <= 8'd8;
-mem[5] <= 8'b11100111;
-mem[6] <= 0;
-mem[7] <= 8'b00100101;
+run_test {addr_bits => 5}, '(quoted (symbol 5))', <<'', '(QUOTE 5)';
+mem[0] <= 0;             // (cdr part of NIL)
+mem[1] <= 0;             // (car part of NIL)
+mem[2] <= 8'b00100000;   // (cdr part of T)
+mem[3] <= 8'b00100000;   // (car part of T)
+mem[4] <= 8'd8;          // (free storage pointer)
+mem[5] <= 8'b11100111;   // QUOTED 7
+mem[6] <= 0;             // (result of computation)
+mem[7] <= 8'b00100101;   // SYMBOL 5
+
+run_test {addr_bits => 13}, '(call (more (funcall nil) (proc (var -2))) (number 5))', <<'', '((LAMBDA ID (X) X) 5)';
+mem[ 0] <= 0;                     // (cdr part of NIL)
+mem[ 1] <= 0;                     // (car part of NIL)
+mem[ 2] <= 16'b0010000000000000;  // (cdr part of T)
+mem[ 3] <= 16'b0010000000000000;  // (car part of T)
+mem[ 4] <= 16'd12;                // (free storage pointer)
+mem[ 5] <= 16'b1100000000000111;  // CALL 7
+mem[ 6] <= 0;                     // (result of computation)
+mem[ 7] <= 16'b0000000000001001;  // MORE 9
+mem[ 8] <= 16'b0010000000000101;  // NUMBER 5
+mem[ 9] <= 16'b1110000000000000;  // FUNCALL NIL
+mem[10] <= 16'b1000000000001011;  // PROC 11
+mem[11] <= 16'b0011111111111110;  // VAR -2
This page took 0.010594 seconds and 4 git commands to generate.