-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTests.fs
More file actions
130 lines (114 loc) · 3.28 KB
/
Tests.fs
File metadata and controls
130 lines (114 loc) · 3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
\ gforth Tests.fs
S" Equals.fs" REQUIRED
S" BankOcr.fs" REQUIRED
\ bit patterns
\
\ 10
\ 101
\ 111
\ _ _ _ _ _ _ _ _
\ | | | _| _||_||_ |_ ||_||_|
\ |_| ||_ _| | _||_| ||_| _|
: TEST-ENCODING-OCR
ASSERT( 0 S" _ " ENCODE-OCR
S" | |" ENCODE-OCR
S" |_|" ENCODE-OCR
[ 2 BASE ! ]
10101111 =?
[ DECIMAL ] ) ;
: TEST-ENCODING-OCR-LINE
PAD 2 ERASE
PAD S" _ " ENCODE-LINE
PAD S" | | |" ENCODE-LINE
PAD S" |_| |" ENCODE-LINE
[ 2 BASE ! ]
ASSERT( PAD 0 + C@ 10101111 =? )
ASSERT( PAD 1 + C@ 00001001 =? )
[ DECIMAL ] ;
: TEST-BYTE>DIGIT
[ 2 BASE ! ]
ASSERT( 10101111 BYTE>DIGIT 0000 =? )
ASSERT( 10111111 BYTE>DIGIT 1000 =? )
[ DECIMAL ] ;
: TEST-PROCESS-LINE
S" _ _ _ _ _ _ _ " PROCESS-LINE
S" | _| _||_||_ |_ ||_||_|" PROCESS-LINE
S" ||_ _| | _||_| ||_| _|" PROCESS-LINE
S" " PROCESS-LINE
ASSERT( ACCOUNTS 9 S" 123456789" COMPARE 0 =? ) ;
: TEST-ILLEGIBLE
ASSERT( S" 123456?89" ILLEGIBLE? TRUE =? )
ASSERT( S" 123456789" ILLEGIBLE? FALSE =? ) ;
: TEST-CHECKSUM
ASSERT( S" 000000051" CHECKSUM? TRUE =? )
ASSERT( S" 000000061" CHECKSUM? FALSE =? ) ;
: TEST-SET-BIT
[ 2 BASE ! ]
ASSERT( 00 00110010 SET-BIT 00110011 =? )
ASSERT( 10 00110010 SET-BIT 00110110 =? )
ASSERT( 111 00110010 SET-BIT 10110010 =? )
[ DECIMAL ] ;
: TEST-VALID
ASSERT( S" 0000000?3" VALID? 0 =? )
ASSERT( S" 000000033" VALID? 0 =? ) ;
: TEST-FIND-ALTERNATIVE
S" _ _ _ _ _ _ _ " PROCESS-LINE
S" | || || || || || || ||_ |" PROCESS-LINE
S" |_||_||_||_||_||_||_| _| |" PROCESS-LINE
S" " PROCESS-LINE
ASSERT( ACCOUNT# @ 1 =? )
ASSERT( S" 000000051" ACCOUNTS 9 COMPARE 0 =? )
S" _ _ _ _ _ _ _ " PROCESS-LINE
S" | || || || || || || ||_ |" PROCESS-LINE
S" |_||_||_||_||_||_||_| _| |" PROCESS-LINE
S" " PROCESS-LINE
ASSERT( ACCOUNT# @ 1 =? )
ASSERT( S" 000000051" ACCOUNTS 9 COMPARE 0 =? )
;
: TEST-SEVERAL-ALTERNATIVES
S" _ _ _ _ _ _ _ " PROCESS-LINE
S" |_||_|| || ||_ | | ||_ " PROCESS-LINE
S" | _||_||_||_| | | | _|" PROCESS-LINE
S" " PROCESS-LINE
ASSERT( ACCOUNT# @ 2 =? )
ACCOUNT 9 .ACCOUNT
;
: TEST-SEVERAL-ACCOUNTS
S" _ _ _ _ _ _ _ _ " PROCESS-LINE
S" _||_||_ |_||_| _||_||_ |_ " PROCESS-LINE
S" _| | _||_||_||_ |_||_| _|" PROCESS-LINE
S" " PROCESS-LINE
S" _ _ _ _ _ _ _ " PROCESS-LINE
S" ||_| ||_ _||_| _||_ | |" PROCESS-LINE
S" | _| | _| _| _||_ |_||_|" PROCESS-LINE
S" " PROCESS-LINE
S" _ _ _ _ _ _ _ " PROCESS-LINE
S" |_ |_| ||_||_ _| | ||_|" PROCESS-LINE
S" |_| | | _||_||_ | | _|" PROCESS-LINE
S" " PROCESS-LINE
S" _ _ _ _ _ _ _ _ " PROCESS-LINE
S" _||_||_ _| | _||_||_| _|" PROCESS-LINE
S" |_ |_| _||_ ||_ _||_||_ " PROCESS-LINE
S" " PROCESS-LINE
;
: VISUAL-TESTS
S" input.txt" PROCESS-FILE ;
: TESTS
TEST-ENCODING-OCR
TEST-ENCODING-OCR-LINE
TEST-BYTE>DIGIT
TEST-PROCESS-LINE
TEST-ILLEGIBLE
TEST-CHECKSUM
TEST-SET-BIT
TEST-VALID
TEST-FIND-ALTERNATIVE
TEST-SEVERAL-ALTERNATIVES
TEST-SEVERAL-ACCOUNTS
VISUAL-TESTS
;
PAGE
TESTS
." SUCCESS"
.S
BYE