/anstests/facilitytest.fth

https://github.com/jamesbowman/swapforth · Forth · 135 lines · 112 code · 23 blank · 0 comment · 2 complexity · 7ccb898c484307bef854986410577a50 MD5 · raw file

  1. \ To test part of the Forth 2012 Facility word set
  2. \ This program was written by Gerry Jackson in 2015, with contributions from
  3. \ others where indicated, and is in the public domain - it can be distributed
  4. \ and/or modified in any way but please retain this notice.
  5. \ This program is distributed in the hope that it will be useful,
  6. \ but WITHOUT ANY WARRANTY; without even the implied warranty of
  7. \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  8. \ The tests are not claimed to be comprehensive or correct
  9. \ ------------------------------------------------------------------------------
  10. \ Version 0.11 25 April 2015 Added tests for BEGIN-STRUCTURE END-STRUCTURE +FIELD
  11. \ FIELD: CFIELD:
  12. \ -----------------------------------------------------------------------------
  13. \ The tests are based on John Hayes test program for the core word set
  14. \ Words tested in this file are: +FIELD BEGIN-STRUCTURE CFIELD: END-STRUCTURE
  15. \ FIELD:
  16. \ -----------------------------------------------------------------------------
  17. TESTING Facility words
  18. DECIMAL
  19. \ -----------------------------------------------------------------------------
  20. TESTING BEGIN-STRUCTURE END-STRUCTURE +FIELD
  21. T{ BEGIN-STRUCTURE STRCT1
  22. END-STRUCTURE -> }T
  23. T{ STRCT1 -> 0 }T
  24. T{ BEGIN-STRUCTURE STRCT2
  25. 1 CHARS +FIELD F21
  26. 2 CHARS +FIELD F22
  27. 0 +FIELD F23
  28. 1 CELLS +FIELD F24
  29. END-STRUCTURE -> }T
  30. T{ STRCT2 -> 3 chars 1 cells + }T \ +FIELD doesn't align
  31. T{ 0 F21 -> 0 }T
  32. T{ 0 F22 -> 1 }T
  33. T{ 0 F23 -> 3 }T
  34. T{ 0 F24 -> 3 }T
  35. T{ 5 F23 -> 8 }T
  36. T{ CREATE S21 STRCT2 ALLOT -> }T
  37. T{ 11 S21 F21 C! -> }T
  38. T{ 22 S21 F22 C! -> }T
  39. T{ 33 S21 F23 C! -> }T
  40. T{ S21 F23 C@ -> 33 }T
  41. T{ 44 S21 F24 C! -> }T
  42. T{ S21 F21 C@ -> 11 }T
  43. T{ S21 F22 C@ -> 22 }T
  44. T{ S21 F23 C@ -> 44 }T
  45. T{ S21 F24 C@ -> 44 }T
  46. T{ CREATE S22 STRCT2 ALLOT -> }T
  47. T{ 55 S22 F21 C! -> }T
  48. T{ 66 S22 F22 C! -> }T
  49. T{ S21 F21 C@ -> 11 }T
  50. T{ S21 F22 C@ -> 22 }T
  51. T{ S22 F21 C@ -> 55 }T
  52. T{ S22 F22 C@ -> 66 }T
  53. TESTING FIELD: CFIELD:
  54. T{ BEGIN-STRUCTURE STRCT3
  55. FIELD: F31
  56. FIELD: F32
  57. CFIELD: CF31
  58. CFIELD: CF32
  59. CFIELD: CF33
  60. FIELD: F33
  61. END-STRUCTURE -> }T
  62. T{ 0 F31 CELL+ -> 0 F32 }T
  63. T{ 0 CF31 CHAR+ -> 0 CF32 }T
  64. T{ 0 CF32 CHAR+ -> 0 CF33 }T
  65. \ T{ 0 CF33 ALIGNED -> 0 F33 }T xxx pending confirmation
  66. T{ CREATE S31 STRCT3 ALLOT -> }T
  67. T{ 1 S31 F31 ! -> }T
  68. T{ 2 S31 F32 ! -> }T
  69. T{ 3 S31 CF31 C! -> }T
  70. T{ 4 S31 CF32 C! -> }T
  71. T{ 5 S31 F33 ! -> }T
  72. T{ S31 F31 @ -> 1 }T
  73. T{ S31 F32 @ -> 2 }T
  74. T{ S31 CF31 C@ -> 3 }T
  75. T{ S31 CF32 C@ -> 4 }T
  76. T{ S31 F33 @ -> 5 }T
  77. TESTING Nested structures
  78. T{ BEGIN-STRUCTURE STRCT4
  79. STRCT2 +FIELD F41
  80. ALIGNED STRCT3 +FIELD F42
  81. 3 +FIELD F43
  82. STRCT2 +FIELD F44
  83. END-STRUCTURE -> }T
  84. T{ STRCT4 -> STRCT2 ALIGNED STRCT3 + 3 + STRCT2 + }T
  85. T{ CREATE S41 STRCT4 ALLOT -> }T
  86. T{ 21 S41 F41 F21 C! -> }T
  87. T{ 22 S41 F41 F22 C! -> }T
  88. T{ 23 S41 F41 F23 C! -> }T
  89. T{ 24 S41 F42 F31 ! -> }T
  90. T{ 25 S41 F42 F32 ! -> }T
  91. T{ 26 S41 F42 CF31 C! -> }T
  92. T{ 27 S41 F42 CF32 C! -> }T
  93. T{ 28 S41 F42 CF33 C! -> }T
  94. T{ 29 S41 F42 F33 ! -> }T
  95. T{ 30 S41 F44 F21 C! -> }T
  96. T{ 31 S41 F44 F22 C! -> }T
  97. T{ 32 S41 F44 F23 C! -> }T
  98. T{ S41 F41 F21 C@ -> 21 }T
  99. T{ S41 F41 F22 C@ -> 22 }T
  100. T{ S41 F41 F23 C@ -> 23 }T
  101. T{ S41 F42 F31 @ -> 24 }T
  102. T{ S41 F42 F32 @ -> 25 }T
  103. T{ S41 F42 CF31 C@ -> 26 }T
  104. T{ S41 F42 CF32 C@ -> 27 }T
  105. T{ S41 F42 CF33 C@ -> 28 }T
  106. T{ S41 F42 F33 @ -> 29 }T
  107. T{ S41 F44 F21 C@ -> 30 }T
  108. T{ S41 F44 F22 C@ -> 31 }T
  109. T{ S41 F44 F23 C@ -> 32 }T
  110. \ -----------------------------------------------------------------------------
  111. FACILITY-ERRORS SET-ERROR-COUNT
  112. CR .( End of Facility word tests) CR