Added some more sample programs and verification scripts. Updated Makefile to run...
authorMichael Welch <michaelgwelch@gmail.com>
Sat, 3 Feb 2007 00:11:50 +0000 (00:11 +0000)
committerMichael Welch <michaelgwelch@gmail.com>
Sat, 3 Feb 2007 00:11:50 +0000 (00:11 +0000)
samples/Makefile [changed mode: 0644->0755]
samples/gosub.mbas
samples/goto.mbas [new file with mode: 0755]
samples/testArray.py [new file with mode: 0755]
samples/testArray2.py [new file with mode: 0755]
samples/testCore.py [changed mode: 0644->0755]
samples/testGosub.py [new file with mode: 0755]
samples/testGoto.py [new file with mode: 0755]

old mode 100644 (file)
new mode 100755 (executable)
index 8633733..dce1911
@@ -2,7 +2,7 @@ MONO := mono
 MBASIC := $(MONO) ../bin/mbasic.exe
 
 .PHONY: all
-all: printTest readTest dataTest
+all: printTest readTest dataTest gosubTest arrayTest array2Test
 
 .PHONY: printTest
 printTest: print.mbas testPrint.py
@@ -18,3 +18,18 @@ readTest: read.mbas testRead.py
 dataTest: data.mbas testData.py
        $(MBASIC) data.mbas
        $(MONO) data.exe | ./testData.py
+
+.PHONY: gosubTest
+gosubTest: gosub.mbas testGosub.py
+       $(MBASIC) gosub.mbas
+       $(MONO) gosub.exe | ./testGosub.py
+
+.PHONY: arrayTest
+arrayTest: array.mbas testArray.py
+       $(MBASIC) array.mbas
+       $(MONO) array.exe | ./testArray.py
+
+.PHONY: array2Test
+array2Test: array2.mbas testArray2.py
+       $(MBASIC) array2.mbas
+       $(MONO) array2.exe | ./testArray2.py
index e257e05..95a869a 100644 (file)
@@ -1,22 +1,28 @@
-90 REM gosub example
-100 for i = 1 to 3
-110 gosub 150
-120 print "i=";i
-130 next i
-131 gosub 1000
-140 stop
-150 rem subroutine
-160 for x = 1 to 2
-170 print "x=";x
-180 next x
-190 return
+90 REM gosub example from II-114
+100 REM Build an array, multiply each element by 3, print both arrays
+101 REM with modifications from book to remove randomness
+110 For X = 1 To 4
+120 For Y = 1 To 7
+130 I(X,Y) =  X * Y
+140 Next Y
+150 Next X
+160 Print "FIRST ARRAY"::
+170 Gosub 260
+180 For X = 1 To 4
+190 For Y = 1 To 7
+200 I(X,Y) = 3*I(X,Y)
+210 Next Y
+220 Next X
+230 PRINT "3 TIMES VALUES IN FIRST ARRAY"::
+240 Gosub 260
+250 STOP
+260 REM Subroutine to print array
+270 For X = 1 To 4
+280 For Y = 1 To 7
+290 Print I(X,Y);
+300 Next Y
+310 Print
+320 Next X
+330 Print
+340 Return
 
-1000 print "subroutine 1000 here."
-1020 if j = 0 then 1030 else 1040
-1030 gosub 2000
-1040 return
-
-2000 j = 1
-2010 print "subroutine 2000 here."
-2020 gosub 1000
-2030 return
diff --git a/samples/goto.mbas b/samples/goto.mbas
new file mode 100755 (executable)
index 0000000..2941a42
--- /dev/null
@@ -0,0 +1,13 @@
+ 99 REM Goto Test From Page II-49
+100 REM How many gifts on the 12 days of Christmas?
+110 Gifts = 0
+120 Days = 1
+130 Count = 0
+140 Count = Count + 1
+150 Gifts = Gifts + 1
+160 If Count = Days Then 180
+170 Goto 140
+180 Days = Days + 1
+190 If Days <= 12 Then 130
+200 Print "Total number of gifts is";Gifts
+210 End
diff --git a/samples/testArray.py b/samples/testArray.py
new file mode 100755 (executable)
index 0000000..f5a697c
--- /dev/null
@@ -0,0 +1,7 @@
+#!/usr/bin/env python
+from testCore import assertEquals
+
+assertEquals(" 1  2   1  4   1  6   1  8  ")
+assertEquals(" 3  2   3  4   3  6   3  8  ")
+assertEquals(" 5  2   5  4   5  6   5  8  ")
+assertEquals(" 7  2   7  4   7  6   7  8  ")
diff --git a/samples/testArray2.py b/samples/testArray2.py
new file mode 100755 (executable)
index 0000000..a142c14
--- /dev/null
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+from testCore import assertEquals
+
+assertEquals(" 1 |  2  3  4  5 ")
+assertEquals("")
+assertEquals("~~~~~~~~~~~~~~~~~~")
+assertEquals(" 2 |  4  6  8  10 ")
+assertEquals(" 3 |  6  9  12  15 ")
+assertEquals(" 4 |  8  12  16  20 ")
+assertEquals(" 5 |  10  15  20  25 ")
old mode 100644 (file)
new mode 100755 (executable)
index 2569b0e..8df5ccf
@@ -5,5 +5,5 @@ def assertEquals(x):
        lineNumber = lineNumber + 1
        input = raw_input()
        if (x == input): return
-       print "Line %d: '%s' != '%s'" % (lineNumber,x,input)
+       print "Line %d: expected:'%s' != '%s'" % (lineNumber,x,input)
 
diff --git a/samples/testGosub.py b/samples/testGosub.py
new file mode 100755 (executable)
index 0000000..9c22708
--- /dev/null
@@ -0,0 +1,17 @@
+#!/usr/bin/env python
+from testCore import assertEquals
+assertEquals("FIRST ARRAY")
+assertEquals("")
+assertEquals(" 1  2  3  4  5  6  7 ")
+assertEquals(" 2  4  6  8  10  12  14 ")
+assertEquals(" 3  6  9  12  15  18  21 ")
+assertEquals(" 4  8  12  16  20  24  28 ")
+assertEquals("")
+assertEquals("3 TIMES VALUES IN FIRST ARRA")
+assertEquals("Y")
+assertEquals("")
+assertEquals(" 3  6  9  12  15  18  21 ")
+assertEquals(" 6  12  18  24  30  36  42 ")
+assertEquals(" 9  18  27  36  45  54  63 ")
+assertEquals(" 12  24  36  48  60  72  84 ")
+
diff --git a/samples/testGoto.py b/samples/testGoto.py
new file mode 100755 (executable)
index 0000000..d9013d3
--- /dev/null
@@ -0,0 +1,3 @@
+#!/usr/bin/env python
+from testCore import assertEquals
+assertEquals("Total number of gifts is 78 ")