swapforth

Форк
0
/
facilitytest.fth 
135 строк · 3.7 Кб
1
\ To test part of the Forth 2012 Facility word set
2

3
\ This program was written by Gerry Jackson in 2015, with contributions from
4
\ others where indicated, and is in the public domain - it can be distributed
5
\ and/or modified in any way but please retain this notice.
6

7
\ This program is distributed in the hope that it will be useful,
8
\ but WITHOUT ANY WARRANTY; without even the implied warranty of
9
\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10

11
\ The tests are not claimed to be comprehensive or correct 
12

13
\ ------------------------------------------------------------------------------
14
\ Version 0.11 25 April 2015 Added tests for BEGIN-STRUCTURE END-STRUCTURE +FIELD
15
\              FIELD: CFIELD:
16
\ -----------------------------------------------------------------------------
17
\ The tests are based on John Hayes test program for the core word set
18

19
\ Words tested in this file are: +FIELD BEGIN-STRUCTURE CFIELD: END-STRUCTURE
20
\      FIELD:
21

22
\ -----------------------------------------------------------------------------
23
TESTING Facility words
24

25
DECIMAL
26
\ -----------------------------------------------------------------------------
27
TESTING BEGIN-STRUCTURE END-STRUCTURE +FIELD
28

29
T{ BEGIN-STRUCTURE STRCT1
30
   END-STRUCTURE   -> }T
31
T{ STRCT1 -> 0 }T
32

33
T{ BEGIN-STRUCTURE STRCT2
34
      1 CHARS +FIELD F21
35
      2 CHARS +FIELD F22
36
      0 +FIELD F23
37
      1 CELLS +FIELD F24
38
   END-STRUCTURE   -> }T
39

40
T{ STRCT2 -> 3 chars 1 cells + }T   \ +FIELD doesn't align
41
T{ 0 F21 -> 0 }T
42
T{ 0 F22 -> 1 }T
43
T{ 0 F23 -> 3 }T
44
T{ 0 F24 -> 3 }T
45
T{ 5 F23 -> 8 }T
46

47
T{ CREATE S21 STRCT2 ALLOT -> }T
48
T{ 11 S21 F21 C! -> }T
49
T{ 22 S21 F22 C! -> }T
50
T{ 33 S21 F23 C! -> }T
51
T{ S21 F23 C@ -> 33 }T
52
T{ 44 S21 F24 C! -> }T
53
T{ S21 F21 C@ -> 11 }T
54
T{ S21 F22 C@ -> 22 }T
55
T{ S21 F23 C@ -> 44 }T
56
T{ S21 F24 C@ -> 44 }T
57

58
T{ CREATE S22 STRCT2 ALLOT -> }T
59
T{ 55 S22 F21 C! -> }T
60
T{ 66 S22 F22 C! -> }T
61
T{ S21 F21 C@ -> 11 }T
62
T{ S21 F22 C@ -> 22 }T
63
T{ S22 F21 C@ -> 55 }T
64
T{ S22 F22 C@ -> 66 }T
65

66
TESTING FIELD: CFIELD:
67

68
T{ BEGIN-STRUCTURE STRCT3
69
      FIELD:  F31
70
      FIELD:  F32
71
      CFIELD: CF31
72
      CFIELD: CF32
73
      CFIELD: CF33
74
      FIELD:  F33
75
   END-STRUCTURE -> }T
76

77
T{ 0 F31  CELL+ -> 0 F32  }T
78
T{ 0 CF31 CHAR+ -> 0 CF32 }T
79
T{ 0 CF32 CHAR+ -> 0 CF33 }T
80
\ T{ 0 CF33 ALIGNED -> 0 F33 }T   xxx pending confirmation
81

82
T{ CREATE S31 STRCT3 ALLOT -> }T
83
T{ 1 S31 F31   ! -> }T
84
T{ 2 S31 F32   ! -> }T
85
T{ 3 S31 CF31 C! -> }T
86
T{ 4 S31 CF32 C! -> }T
87
T{ 5 S31 F33   ! -> }T
88
T{ S31 F31   @ -> 1 }T
89
T{ S31 F32   @ -> 2 }T
90
T{ S31 CF31 C@ -> 3 }T
91
T{ S31 CF32 C@ -> 4 }T
92
T{ S31 F33   @ -> 5 }T
93

94
TESTING Nested structures
95

96
T{ BEGIN-STRUCTURE STRCT4
97
      STRCT2 +FIELD F41
98
      ALIGNED STRCT3 +FIELD F42
99
      3 +FIELD F43
100
      STRCT2 +FIELD F44
101
   END-STRUCTURE        -> }T
102
T{ STRCT4 -> STRCT2 ALIGNED STRCT3 + 3 + STRCT2 + }T
103

104
T{ CREATE S41 STRCT4 ALLOT -> }T
105
T{ 21 S41 F41 F21  C! -> }T
106
T{ 22 S41 F41 F22  C! -> }T
107
T{ 23 S41 F41 F23  C! -> }T
108
T{ 24 S41 F42 F31   ! -> }T
109
T{ 25 S41 F42 F32   ! -> }T
110
T{ 26 S41 F42 CF31 C! -> }T
111
T{ 27 S41 F42 CF32 C! -> }T
112
T{ 28 S41 F42 CF33 C! -> }T
113
T{ 29 S41 F42 F33   ! -> }T
114
T{ 30 S41 F44 F21  C! -> }T
115
T{ 31 S41 F44 F22  C! -> }T
116
T{ 32 S41 F44 F23  C! -> }T
117

118
T{ S41 F41 F21  C@ -> 21 }T
119
T{ S41 F41 F22  C@ -> 22 }T
120
T{ S41 F41 F23  C@ -> 23 }T
121
T{ S41 F42 F31   @ -> 24 }T
122
T{ S41 F42 F32   @ -> 25 }T
123
T{ S41 F42 CF31 C@ -> 26 }T
124
T{ S41 F42 CF32 C@ -> 27 }T
125
T{ S41 F42 CF33 C@ -> 28 }T
126
T{ S41 F42 F33   @ -> 29 }T
127
T{ S41 F44 F21  C@ -> 30 }T
128
T{ S41 F44 F22  C@ -> 31 }T
129
T{ S41 F44 F23  C@ -> 32 }T
130

131
\ -----------------------------------------------------------------------------
132

133
FACILITY-ERRORS SET-ERROR-COUNT
134

135
CR .( End of Facility word tests) CR
136

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.