summaryrefslogtreecommitdiff
path: root/projects/04/mult/Mult.tst
diff options
context:
space:
mode:
Diffstat (limited to 'projects/04/mult/Mult.tst')
-rw-r--r--projects/04/mult/Mult.tst74
1 files changed, 74 insertions, 0 deletions
diff --git a/projects/04/mult/Mult.tst b/projects/04/mult/Mult.tst
new file mode 100644
index 0000000..9bf4fa8
--- /dev/null
+++ b/projects/04/mult/Mult.tst
@@ -0,0 +1,74 @@
+// This file is part of www.nand2tetris.org
+// and the book "The Elements of Computing Systems"
+// by Nisan and Schocken, MIT Press.
+// File name: projects/04/mult/Mult.tst
+
+load Mult.asm,
+output-file Mult.out,
+compare-to Mult.cmp,
+output-list RAM[0]%D2.6.2 RAM[1]%D2.6.2 RAM[2]%D2.6.2;
+
+set RAM[0] 0, // Set test arguments
+set RAM[1] 0,
+set RAM[2] -1; // Test that program initialized product to 0
+repeat 20 {
+ ticktock;
+}
+set RAM[0] 0, // Restore arguments in case program used them as loop counter
+set RAM[1] 0,
+output;
+
+set PC 0,
+set RAM[0] 1, // Set test arguments
+set RAM[1] 0,
+set RAM[2] -1; // Ensure that program initialized product to 0
+repeat 50 {
+ ticktock;
+}
+set RAM[0] 1, // Restore arguments in case program used them as loop counter
+set RAM[1] 0,
+output;
+
+set PC 0,
+set RAM[0] 0, // Set test arguments
+set RAM[1] 2,
+set RAM[2] -1; // Ensure that program initialized product to 0
+repeat 80 {
+ ticktock;
+}
+set RAM[0] 0, // Restore arguments in case program used them as loop counter
+set RAM[1] 2,
+output;
+
+set PC 0,
+set RAM[0] 3, // Set test arguments
+set RAM[1] 1,
+set RAM[2] -1; // Ensure that program initialized product to 0
+repeat 120 {
+ ticktock;
+}
+set RAM[0] 3, // Restore arguments in case program used them as loop counter
+set RAM[1] 1,
+output;
+
+set PC 0,
+set RAM[0] 2, // Set test arguments
+set RAM[1] 4,
+set RAM[2] -1; // Ensure that program initialized product to 0
+repeat 150 {
+ ticktock;
+}
+set RAM[0] 2, // Restore arguments in case program used them as loop counter
+set RAM[1] 4,
+output;
+
+set PC 0,
+set RAM[0] 6, // Set test arguments
+set RAM[1] 7,
+set RAM[2] -1; // Ensure that program initialized product to 0
+repeat 210 {
+ ticktock;
+}
+set RAM[0] 6, // Restore arguments in case program used them as loop counter
+set RAM[1] 7,
+output;