home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / remind-03.00.19.tgz / remind-03.00.19.tar / remind-03.00.19 / tests / test.cmp < prev    next >
Text File  |  1998-02-24  |  24KB  |  831 lines

  1. # Test file for REMIND
  2. #
  3. # Use this file to test the date calculation routines
  4. # of the REMIND program by typing:
  5. #
  6. #     ./test-rem  # From WITHIN Remind source directory!
  7.  
  8. REM MSG Today is [hebday(today())] [hebmon(today())] [hebyear(today())]
  9. ../tests/test.rem(8): Trig = Saturday, 16 February, 1991
  10. Reminders for Saturday, 16th February, 1991:
  11.  
  12. today() => 1991/02/16
  13. hebday(1991/02/16) => 2
  14. today() => 1991/02/16
  15. hebmon(1991/02/16) => "Adar"
  16. today() => 1991/02/16
  17. hebyear(1991/02/16) => 5751
  18. Today is 2 Adar 5751
  19.  
  20. fset _h(x, y) trigger(hebdate(x,y))
  21.  
  22. [_h(1,  "Tishrey")] MSG Rosh Hashana 1
  23. Entering UserFN _h(1, "Tishrey")
  24. x => 1
  25. y => "Tishrey"
  26. hebdate(1, "Tishrey") => 1991/09/09
  27. trigger(1991/09/09) => "9 September 1991"
  28. Leaving UserFN _h() => "9 September 1991"
  29. ../tests/test.rem(11): Trig = Monday, 9 September, 1991
  30. [_h(2,  "Tishrey")] MSG Rosh Hashana 2
  31. Entering UserFN _h(2, "Tishrey")
  32. x => 2
  33. y => "Tishrey"
  34. hebdate(2, "Tishrey") => 1991/09/10
  35. trigger(1991/09/10) => "10 September 1991"
  36. Leaving UserFN _h() => "10 September 1991"
  37. ../tests/test.rem(12): Trig = Tuesday, 10 September, 1991
  38. [_h(3,  "Tishrey")] MSG Tzom Gedalia
  39. Entering UserFN _h(3, "Tishrey")
  40. x => 3
  41. y => "Tishrey"
  42. hebdate(3, "Tishrey") => 1991/09/11
  43. trigger(1991/09/11) => "11 September 1991"
  44. Leaving UserFN _h() => "11 September 1991"
  45. ../tests/test.rem(13): Trig = Wednesday, 11 September, 1991
  46. [_h(10, "Tishrey")] MSG Yom Kippur
  47. Entering UserFN _h(10, "Tishrey")
  48. x => 10
  49. y => "Tishrey"
  50. hebdate(10, "Tishrey") => 1991/09/18
  51. trigger(1991/09/18) => "18 September 1991"
  52. Leaving UserFN _h() => "18 September 1991"
  53. ../tests/test.rem(14): Trig = Wednesday, 18 September, 1991
  54. [_h(15, "Tishrey")] MSG Sukkot 1
  55. Entering UserFN _h(15, "Tishrey")
  56. x => 15
  57. y => "Tishrey"
  58. hebdate(15, "Tishrey") => 1991/09/23
  59. trigger(1991/09/23) => "23 September 1991"
  60. Leaving UserFN _h() => "23 September 1991"
  61. ../tests/test.rem(15): Trig = Monday, 23 September, 1991
  62. [_h(25, "Kislev")]  MSG Channuka
  63. Entering UserFN _h(25, "Kislev")
  64. x => 25
  65. y => "Kislev"
  66. hebdate(25, "Kislev") => 1991/12/02
  67. trigger(1991/12/02) => "2 December 1991"
  68. Leaving UserFN _h() => "2 December 1991"
  69. ../tests/test.rem(16): Trig = Monday, 2 December, 1991
  70. [_h(10, "Tevet")]   MSG Asara B'Tevet
  71. Entering UserFN _h(10, "Tevet")
  72. x => 10
  73. y => "Tevet"
  74. hebdate(10, "Tevet") => 1991/12/17
  75. trigger(1991/12/17) => "17 December 1991"
  76. Leaving UserFN _h() => "17 December 1991"
  77. ../tests/test.rem(17): Trig = Tuesday, 17 December, 1991
  78. [_h(15, "Shvat")]   MSG Tu B'Shvat
  79. Entering UserFN _h(15, "Shvat")
  80. x => 15
  81. y => "Shvat"
  82. hebdate(15, "Shvat") => 1992/01/20
  83. trigger(1992/01/20) => "20 January 1992"
  84. Leaving UserFN _h() => "20 January 1992"
  85. ../tests/test.rem(18): Trig = Monday, 20 January, 1992
  86. [_h(15, "Adar A")]  MSG Purim Katan
  87. Entering UserFN _h(15, "Adar A")
  88. x => 15
  89. y => "Adar A"
  90. hebdate(15, "Adar A") => 1992/02/19
  91. trigger(1992/02/19) => "19 February 1992"
  92. Leaving UserFN _h() => "19 February 1992"
  93. ../tests/test.rem(19): Trig = Wednesday, 19 February, 1992
  94. [_h(14, "Adar")]    MSG Purim
  95. Entering UserFN _h(14, "Adar")
  96. x => 14
  97. y => "Adar"
  98. hebdate(14, "Adar") => 1991/02/28
  99. trigger(1991/02/28) => "28 February 1991"
  100. Leaving UserFN _h() => "28 February 1991"
  101. ../tests/test.rem(20): Trig = Thursday, 28 February, 1991
  102. [_h(15, "Nisan")]   MSG Pesach
  103. Entering UserFN _h(15, "Nisan")
  104. x => 15
  105. y => "Nisan"
  106. hebdate(15, "Nisan") => 1991/03/30
  107. trigger(1991/03/30) => "30 March 1991"
  108. Leaving UserFN _h() => "30 March 1991"
  109. ../tests/test.rem(21): Trig = Saturday, 30 March, 1991
  110. [_h(27, "Nisan")]   MSG Yom HaShoah
  111. Entering UserFN _h(27, "Nisan")
  112. x => 27
  113. y => "Nisan"
  114. hebdate(27, "Nisan") => 1991/04/11
  115. trigger(1991/04/11) => "11 April 1991"
  116. Leaving UserFN _h() => "11 April 1991"
  117. ../tests/test.rem(22): Trig = Thursday, 11 April, 1991
  118. [_h(4,  "Iyar")]    MSG Yom HaZikaron
  119. Entering UserFN _h(4, "Iyar")
  120. x => 4
  121. y => "Iyar"
  122. hebdate(4, "Iyar") => 1991/04/18
  123. trigger(1991/04/18) => "18 April 1991"
  124. Leaving UserFN _h() => "18 April 1991"
  125. ../tests/test.rem(23): Trig = Thursday, 18 April, 1991
  126. [_h(5,  "Iyar")]    MSG Yom Ha'atzmaut
  127. Entering UserFN _h(5, "Iyar")
  128. x => 5
  129. y => "Iyar"
  130. hebdate(5, "Iyar") => 1991/04/19
  131. trigger(1991/04/19) => "19 April 1991"
  132. Leaving UserFN _h() => "19 April 1991"
  133. ../tests/test.rem(24): Trig = Friday, 19 April, 1991
  134. [_h(28, "Iyar")]    MSG Yom Yerushalayim
  135. Entering UserFN _h(28, "Iyar")
  136. x => 28
  137. y => "Iyar"
  138. hebdate(28, "Iyar") => 1991/05/12
  139. trigger(1991/05/12) => "12 May 1991"
  140. Leaving UserFN _h() => "12 May 1991"
  141. ../tests/test.rem(25): Trig = Sunday, 12 May, 1991
  142. [_h(6,  "Sivan")]   MSG Shavuot
  143. Entering UserFN _h(6, "Sivan")
  144. x => 6
  145. y => "Sivan"
  146. hebdate(6, "Sivan") => 1991/05/19
  147. trigger(1991/05/19) => "19 May 1991"
  148. Leaving UserFN _h() => "19 May 1991"
  149. ../tests/test.rem(26): Trig = Sunday, 19 May, 1991
  150. [_h(9,  "Av")]      MSG Tish'a B'Av
  151. Entering UserFN _h(9, "Av")
  152. x => 9
  153. y => "Av"
  154. hebdate(9, "Av") => 1991/07/20
  155. trigger(1991/07/20) => "20 July 1991"
  156. Leaving UserFN _h() => "20 July 1991"
  157. ../tests/test.rem(27): Trig = Saturday, 20 July, 1991
  158.  
  159. # Test some jahrzeit cases
  160. fset _i(x,y,z,a) trigger(hebdate(x,y,z,a))
  161. [_i(30, "Heshvan", today(), 5759)] MSG Complete-Complete
  162. today() => 1991/02/16
  163. Entering UserFN _i(30, "Heshvan", 1991/02/16, 5759)
  164. x => 30
  165. y => "Heshvan"
  166. z => 1991/02/16
  167. a => 5759
  168. hebdate(30, "Heshvan", 1991/02/16, 5759) => 1991/11/07
  169. trigger(1991/11/07) => "7 November 1991"
  170. Leaving UserFN _i() => "7 November 1991"
  171. ../tests/test.rem(31): Trig = Thursday, 7 November, 1991
  172. [_i(30, "Heshvan", today(), 5760)] MSG Complete-Defective
  173. today() => 1991/02/16
  174. Entering UserFN _i(30, "Heshvan", 1991/02/16, 5760)
  175. x => 30
  176. y => "Heshvan"
  177. z => 1991/02/16
  178. a => 5760
  179. hebdate(30, "Heshvan", 1991/02/16, 5760) => 1991/11/07
  180. trigger(1991/11/07) => "7 November 1991"
  181. Leaving UserFN _i() => "7 November 1991"
  182. ../tests/test.rem(32): Trig = Thursday, 7 November, 1991
  183. [_i(30, "Heshvan", today(), 5761)] MSG Illegal
  184. today() => 1991/02/16
  185. Entering UserFN _i(30, "Heshvan", 1991/02/16, 5761)
  186. x => 30
  187. y => "Heshvan"
  188. z => 1991/02/16
  189. a => 5761
  190. hebdate(30, "Heshvan", 1991/02/16, 5761) => ../tests/test.rem(33): 30 Heshvan 5761: Invalid Hebrew date
  191. Invalid Hebrew date
  192. Leaving UserFN _i() => Invalid Hebrew date
  193.  
  194. [_i(30, "Kislev", today(), 5759)] MSG Complete-Complete
  195. today() => 1991/02/16
  196. Entering UserFN _i(30, "Kislev", 1991/02/16, 5759)
  197. x => 30
  198. y => "Kislev"
  199. z => 1991/02/16
  200. a => 5759
  201. hebdate(30, "Kislev", 1991/02/16, 5759) => 1991/12/07
  202. trigger(1991/12/07) => "7 December 1991"
  203. Leaving UserFN _i() => "7 December 1991"
  204. ../tests/test.rem(35): Trig = Saturday, 7 December, 1991
  205. [_i(30, "Kislev", today(), 5760)] MSG Complete-Defective
  206. today() => 1991/02/16
  207. Entering UserFN _i(30, "Kislev", 1991/02/16, 5760)
  208. x => 30
  209. y => "Kislev"
  210. z => 1991/02/16
  211. a => 5760
  212. hebdate(30, "Kislev", 1991/02/16, 5760) => 1991/12/07
  213. trigger(1991/12/07) => "7 December 1991"
  214. Leaving UserFN _i() => "7 December 1991"
  215. ../tests/test.rem(36): Trig = Saturday, 7 December, 1991
  216. [_i(30, "Kislev", today(), 5761)] MSG Illegal
  217. today() => 1991/02/16
  218. Entering UserFN _i(30, "Kislev", 1991/02/16, 5761)
  219. x => 30
  220. y => "Kislev"
  221. z => 1991/02/16
  222. a => 5761
  223. hebdate(30, "Kislev", 1991/02/16, 5761) => ../tests/test.rem(37): 30 Kislev 5761: Invalid Hebrew date
  224. Invalid Hebrew date
  225. Leaving UserFN _i() => Invalid Hebrew date
  226.  
  227. [_i(30, "Adar A", today(), 5755)] MSG Leap
  228. today() => 1991/02/16
  229. Entering UserFN _i(30, "Adar A", 1991/02/16, 5755)
  230. x => 30
  231. y => "Adar A"
  232. z => 1991/02/16
  233. a => 5755
  234. hebdate(30, "Adar A", 1991/02/16, 5755) => 1992/03/05
  235. trigger(1992/03/05) => "5 March 1992"
  236. Leaving UserFN _i() => "5 March 1992"
  237. ../tests/test.rem(39): Trig = Thursday, 5 March, 1992
  238. [_i(30, "Adar A", today(), 5756)] MSG Illegal
  239. today() => 1991/02/16
  240. Entering UserFN _i(30, "Adar A", 1991/02/16, 5756)
  241. x => 30
  242. y => "Adar A"
  243. z => 1991/02/16
  244. a => 5756
  245. hebdate(30, "Adar A", 1991/02/16, 5756) => ../tests/test.rem(40): No Adar A in 5756
  246. Invalid Hebrew date
  247. Leaving UserFN _i() => Invalid Hebrew date
  248. [_i(29, "Adar A", today(), 5755)] MSG Leap
  249. today() => 1991/02/16
  250. Entering UserFN _i(29, "Adar A", 1991/02/16, 5755)
  251. x => 29
  252. y => "Adar A"
  253. z => 1991/02/16
  254. a => 5755
  255. hebdate(29, "Adar A", 1991/02/16, 5755) => 1991/03/15
  256. trigger(1991/03/15) => "15 March 1991"
  257. Leaving UserFN _i() => "15 March 1991"
  258. ../tests/test.rem(41): Trig = Friday, 15 March, 1991
  259. [_i(29, "Adar A", today(), 5756)] MSG Illegal
  260. today() => 1991/02/16
  261. Entering UserFN _i(29, "Adar A", 1991/02/16, 5756)
  262. x => 29
  263. y => "Adar A"
  264. z => 1991/02/16
  265. a => 5756
  266. hebdate(29, "Adar A", 1991/02/16, 5756) => ../tests/test.rem(42): No Adar A in 5756
  267. Invalid Hebrew date
  268. Leaving UserFN _i() => Invalid Hebrew date
  269.  
  270. # Test each possible case of the basic reminders.
  271.  
  272. REM MSG Every Day
  273. ../tests/test.rem(46): Trig = Saturday, 16 February, 1991
  274. Every Day
  275.  
  276.  
  277. REM 18 MSG Every 18th 
  278. ../tests/test.rem(48): Trig = Monday, 18 February, 1991
  279. REM 15 MSG Every 15th
  280. ../tests/test.rem(49): Trig = Friday, 15 March, 1991
  281.  
  282. REM Feb MSG February
  283. ../tests/test.rem(51): Trig = Saturday, 16 February, 1991
  284. February
  285.  
  286. REM Jan MSG January
  287. ../tests/test.rem(52): Trig = Wednesday, 1 January, 1992
  288. REM March MSG March
  289. ../tests/test.rem(53): Trig = Friday, 1 March, 1991
  290.  
  291. REM 13 Jan MSG 13 Jan
  292. ../tests/test.rem(55): Trig = Monday, 13 January, 1992
  293. REM 15 Feb MSG 15 Feb
  294. ../tests/test.rem(56): Trig = Saturday, 15 February, 1992
  295. REM 28 Feb MSG 28 Feb
  296. ../tests/test.rem(57): Trig = Thursday, 28 February, 1991
  297. REM 29 Feb MSG 29 Feb
  298. ../tests/test.rem(58): Trig = Saturday, 29 February, 1992
  299. REM 5 Mar MSG 5 Mar
  300. ../tests/test.rem(59): Trig = Tuesday, 5 March, 1991
  301.  
  302. REM 1990 MSG 1990
  303. ../tests/test.rem(61): Expired
  304. REM 1991 MSG 1991
  305. ../tests/test.rem(62): Trig = Saturday, 16 February, 1991
  306. 1991
  307.  
  308. REM 1992 MSG 1991
  309. ../tests/test.rem(63): Trig = Wednesday, 1 January, 1992
  310.  
  311. REM 1 1990 MSG 1 1990
  312. ../tests/test.rem(65): Expired
  313. REM 29 1991 MSG 29 1991
  314. ../tests/test.rem(66): Trig = Friday, 29 March, 1991
  315. REM 29 1992 MSG 29 1992
  316. ../tests/test.rem(67): Trig = Wednesday, 29 January, 1992
  317. REM 16 1991 MSG 16 1991
  318. ../tests/test.rem(68): Trig = Saturday, 16 February, 1991
  319. 16 1991
  320.  
  321.  
  322. REM Jan 1990 MSG Jan 1990
  323. ../tests/test.rem(70): Expired
  324. REM Feb 1991 MSG Feb 1991
  325. ../tests/test.rem(71): Trig = Saturday, 16 February, 1991
  326. Feb 1991
  327.  
  328. REM Dec 1991 MSG Dec 1991
  329. ../tests/test.rem(72): Trig = Sunday, 1 December, 1991
  330. REM May 1992 MSG May 1992
  331. ../tests/test.rem(73): Trig = Friday, 1 May, 1992
  332.  
  333. REM 1 Jan 1991 MSG 1 Jan 1991
  334. ../tests/test.rem(75): Expired
  335. REM 16 Feb 1991 MSG 16 Feb 1991
  336. ../tests/test.rem(76): Trig = Saturday, 16 February, 1991
  337. 16 Feb 1991
  338.  
  339. REM 29 Dec 1992 MSG 29 Dec 1992
  340. ../tests/test.rem(77): Trig = Tuesday, 29 December, 1992
  341.  
  342. REM Sun MSG Sun
  343. ../tests/test.rem(79): Trig = Sunday, 17 February, 1991
  344. REM Fri Sat Tue MSG Fri Sat Tue
  345. ../tests/test.rem(80): Trig = Saturday, 16 February, 1991
  346. Fri Sat Tue
  347.  
  348.  
  349. REM Sun 16 MSG Sun 16
  350. ../tests/test.rem(82): Trig = Sunday, 17 February, 1991
  351. REM Mon Tue Wed Thu Fri 1 MSG Mon Tue Wed Thu Fri 1
  352. ../tests/test.rem(83): Trig = Friday, 1 March, 1991
  353.  
  354. REM Sun Feb MSG Sun Feb
  355. ../tests/test.rem(85): Trig = Sunday, 17 February, 1991
  356. REM Mon Tue March MSG Mon Tue March
  357. ../tests/test.rem(86): Trig = Monday, 4 March, 1991
  358.  
  359. REM Sun 16 Feb MSG Sun 16 Feb
  360. ../tests/test.rem(88): Trig = Sunday, 17 February, 1991
  361. REM Mon Tue 10 March MSG Mon Tue 10 March
  362. ../tests/test.rem(89): Trig = Monday, 11 March, 1991
  363.  
  364. REM Sat Sun 1991 MSG Sat Sun 1991
  365. ../tests/test.rem(91): Trig = Saturday, 16 February, 1991
  366. Sat Sun 1991
  367.  
  368. REM Mon Tue 1992 MSG Mon Tue 1992
  369. ../tests/test.rem(92): Trig = Monday, 6 January, 1992
  370.  
  371. REM Sun 16 1991 MSG Sun 16 1991
  372. ../tests/test.rem(94): Trig = Sunday, 17 February, 1991
  373. REM Mon Tue Wed Thu Fri 1 1992 MSG Mon Tue Wed Thu Fri 1 1992
  374. ../tests/test.rem(95): Trig = Wednesday, 1 January, 1992
  375.  
  376. REM Mon Feb 1991 MSG Mon Feb 1991
  377. ../tests/test.rem(97): Trig = Monday, 18 February, 1991
  378. REM Tue Jan 1992 MSG Tue Jan 1992
  379. ../tests/test.rem(98): Trig = Tuesday, 7 January, 1992
  380.  
  381. REM Sun Mon 16 Feb 1991 MSG Sun Mon 16 Feb 1991
  382. ../tests/test.rem(100): Trig = Sunday, 17 February, 1991
  383. REM Tue 28 Jan 1992 MSG Tue 28 Jan 1992
  384. ../tests/test.rem(101): Trig = Tuesday, 28 January, 1992
  385.  
  386. # Try some Backs
  387. CLEAR-OMIT-CONTEXT
  388. REM 1 -1 OMIT sat sun MSG 1 -1 OMIT Sat Sun
  389. ../tests/test.rem(105): Trig = Thursday, 28 February, 1991
  390. REM 1 --1 OMIT sat sun MSG 1 --1 OMIT Sat Sun
  391. ../tests/test.rem(106): Trig = Thursday, 28 February, 1991
  392.  
  393. OMIT 28 Feb
  394. REM 1 -1 OMIT sat sun MSG 1 -1 OMIT Sat Sun (28 Feb omitted)
  395. ../tests/test.rem(109): Trig = Wednesday, 27 February, 1991
  396. REM 1 --1 OMIT sat sun MSG 1 --1 OMIT Sat Sun (28 Feb omitted)
  397. ../tests/test.rem(110): Trig = Thursday, 28 February, 1991
  398.  
  399. CLEAR-OMIT-CONTEXT
  400.  
  401. # Try out UNTIL
  402. REM Wed UNTIL 21 Feb 1991 MSG Wed UNTIL 21 Feb 1991
  403. ../tests/test.rem(115): Trig = Wednesday, 20 February, 1991
  404.  
  405. # Try playing with the OMIT context
  406.  
  407. OMIT 28 Feb 1991
  408. REM 1 Mar -1 MSG 1 mar -1 (28feb91 omitted)
  409. ../tests/test.rem(120): Trig = Wednesday, 27 February, 1991
  410. REM 1 Mar --1 MSG 1 mar --1 (28Feb91 omitted)
  411. ../tests/test.rem(121): Trig = Thursday, 28 February, 1991
  412. REM 28 Feb BEFORE MSG 28 Feb BEFORE (28Feb91 omitted)
  413. ../tests/test.rem(122): Trig = Wednesday, 27 February, 1991
  414. REM 28 Feb SKIP MSG 28 Feb SKIP (28Feb91 omitted)
  415. ../tests/test.rem(123): Trig = Friday, 28 February, 1992
  416. REM 28 Feb AFTER MSG 28 Feb AFTER (28Feb91 omitted)
  417. ../tests/test.rem(124): Trig = Friday, 1 March, 1991
  418.  
  419. PUSH-OMIT-CONTEXT
  420. CLEAR-OMIT-CONTEXT
  421. REM 1 Mar -1 MSG 1 mar -1
  422. ../tests/test.rem(128): Trig = Thursday, 28 February, 1991
  423. REM 1 Mar --1 MSG 1 mar --1
  424. ../tests/test.rem(129): Trig = Thursday, 28 February, 1991
  425. REM 28 Feb BEFORE MSG 28 Feb BEFORE
  426. ../tests/test.rem(130): Trig = Thursday, 28 February, 1991
  427. REM 28 Feb SKIP MSG 28 Feb SKIP 
  428. ../tests/test.rem(131): Trig = Thursday, 28 February, 1991
  429. REM 28 Feb AFTER MSG 28 Feb AFTER
  430. ../tests/test.rem(132): Trig = Thursday, 28 February, 1991
  431.  
  432. POP-OMIT-CONTEXT
  433. REM 1 Mar -1 MSG 1 mar -1 (28feb91 omitted)
  434. ../tests/test.rem(135): Trig = Wednesday, 27 February, 1991
  435. REM 1 Mar --1 MSG 1 mar --1 (28Feb91 omitted)
  436. ../tests/test.rem(136): Trig = Thursday, 28 February, 1991
  437. REM 28 Feb BEFORE MSG 28 Feb BEFORE (28Feb91 omitted)
  438. ../tests/test.rem(137): Trig = Wednesday, 27 February, 1991
  439. REM 28 Feb SKIP MSG 28 Feb SKIP (28Feb91 omitted)
  440. ../tests/test.rem(138): Trig = Friday, 28 February, 1992
  441. REM 28 Feb AFTER MSG 28 Feb AFTER (28Feb91 omitted)
  442. ../tests/test.rem(139): Trig = Friday, 1 March, 1991
  443.  
  444.  
  445. REM 13 March 1991 *1 UNTIL 19 March 1991 MSG 13-19 Mar 91
  446. ../tests/test.rem(142): Trig = Wednesday, 13 March, 1991
  447.  
  448. # Test BACK
  449. CLEAR-OMIT-CONTEXT
  450. REM 18 Feb 1991 +1 MSG 18 Feb 1991 +1
  451. ../tests/test.rem(146): Trig = Monday, 18 February, 1991
  452.  
  453. OMIT 17 Feb 1991
  454. REM 18 Feb 1991 +1 MSG 18 Feb 1991 +1 (17Feb91 omitted)
  455. ../tests/test.rem(149): Trig = Monday, 18 February, 1991
  456. 18 Feb 1991 +1 (17Feb91 omitted)
  457.  
  458. REM 18 Feb 1991 ++1 MSG 18 Feb 1991 ++1 (17Feb91 omitted)
  459. ../tests/test.rem(150): Trig = Monday, 18 February, 1991
  460.  
  461. CLEAR-OMIT-CONTEXT
  462. # Test the scanfrom clause
  463. REM Fri SATISFY 1
  464. ../tests/test.rem(154): Trig = Friday, 22 February, 1991
  465. OMIT [trigger(trigdate())]
  466. trigdate() => 1991/02/22
  467. trigger(1991/02/22) => "22 February 1991"
  468. REM Fri after MSG 23 Feb 1991
  469. ../tests/test.rem(156): Trig = Saturday, 23 February, 1991
  470. CLEAR-OMIT-CONTEXT
  471. REM Fri SCANFROM [trigger(today()-7)] SATISFY 1
  472. today() => 1991/02/16
  473. 1991/02/16 - 7 => 1991/02/09
  474. trigger(1991/02/09) => "9 February 1991"
  475. ../tests/test.rem(158): Trig = Friday, 15 February, 1991
  476. OMIT [trigger(trigdate())]
  477. trigdate() => 1991/02/15
  478. trigger(1991/02/15) => "15 February 1991"
  479. REM Fri after MSG 16 Feb 1991
  480. ../tests/test.rem(160): Trig = Saturday, 16 February, 1991
  481. 16 Feb 1991
  482.  
  483. CLEAR-OMIT-CONTEXT
  484. set a000 abs(1)
  485. abs(1) => 1
  486. set a001 abs(-1)
  487. - 1 => -1
  488. abs(-1) => 1
  489. set a002 asc("foo")
  490. asc("foo") => 102
  491. set a003 baseyr()
  492. baseyr() => 1990
  493. set a004 char(66,55,66,77,66)
  494. char(66, 55, 66, 77, 66) => "B7BMB"
  495. set a005 choose(3, "foo", "bar", "baz", "blech")
  496. choose(3, "foo", "bar", "baz", "blech") => "baz"
  497. set a006 coerce("string", 1)
  498. coerce("string", 1) => "1"
  499. set a007 coerce("string", today())
  500. today() => 1991/02/16
  501. coerce("string", 1991/02/16) => "1991/02/16"
  502. set a008 coerce("string", 11:44)
  503. coerce("string", 11:44) => "11:44"
  504. set a009 coerce("int", "badnews")
  505. coerce("int", "badnews") => Can't coerce
  506. ../tests/test.rem(171): Can't coerce
  507. set a010 coerce("int", "12")
  508. coerce("int", "12") => 12
  509. set a011 coerce("int", 11:44)
  510. coerce("int", 11:44) => 704
  511. set a012 coerce("int", today())
  512. today() => 1991/02/16
  513. coerce("int", 1991/02/16) => 411
  514. set a013 date(1992, 2, 2)
  515. date(1992, 2, 2) => 1992/02/02
  516. set a014 date(1993, 2, 29)
  517. date(1993, 2, 29) => Bad date specification
  518. ../tests/test.rem(176): Bad date specification
  519. set a015 day(today())
  520. today() => 1991/02/16
  521. day(1991/02/16) => 16
  522. set a016 daysinmon(2, 1991)
  523. daysinmon(2, 1991) => 28
  524. set a017 daysinmon(2, 1992)
  525. daysinmon(2, 1992) => 29
  526. set a018 defined("a017")
  527. defined("a017") => 1
  528. set a019 defined("a019")
  529. defined("a019") => 0
  530. set a020 filename()
  531. filename() => "../tests/test.rem"
  532. set a021 getenv("TEST_GETENV")
  533. getenv("TEST_GETENV") => "foo bar baz"
  534. set a022 hour(11:22)
  535. hour(11:22) => 11
  536. set a023 iif(1, 1, 0)
  537. iif(1, 1, 0) => 1
  538. set a024 iif(0, 1, 0)
  539. iif(0, 1, 0) => 0
  540. set a025 index("barfoobar", "foo")
  541. index("barfoobar", "foo") => 4
  542. set a026 index("barfoobar", "bar", 2)
  543. index("barfoobar", "bar", 2) => 7
  544. set a027 isleap(today())
  545. today() => 1991/02/16
  546. isleap(1991/02/16) => 0
  547. set a028 isleap(1992)
  548. isleap(1992) => 1
  549. omit [trigger(today())]
  550. today() => 1991/02/16
  551. trigger(1991/02/16) => "16 February 1991"
  552. set a030 isomitted(today())
  553. today() => 1991/02/16
  554. isomitted(1991/02/16) => 1
  555. clear
  556. set a029 isomitted(today())
  557. today() => 1991/02/16
  558. isomitted(1991/02/16) => 0
  559. set a031 lower("FOOBARBAZ")
  560. lower("FOOBARBAZ") => "foobarbaz"
  561. set a032 max(1, 2, 34, 1, 3)
  562. max(1, 2, 34, 1, 3) => 34
  563. set a033 max("foo", "bar", "baz")
  564. max("foo", "bar", "baz") => "foo"
  565. set a034 max(today(), today()+1, today()-1)
  566. today() => 1991/02/16
  567. today() => 1991/02/16
  568. 1991/02/16 + 1 => 1991/02/17
  569. today() => 1991/02/16
  570. 1991/02/16 - 1 => 1991/02/15
  571. max(1991/02/16, 1991/02/17, 1991/02/15) => 1991/02/17
  572. set a035 min(1, 2, 34, 1, 3)
  573. min(1, 2, 34, 1, 3) => 1
  574. set a036 min("foo", "bar", "baz")
  575. min("foo", "bar", "baz") => "bar"
  576. set a037 min(today(), today()+1, today()-1)
  577. today() => 1991/02/16
  578. today() => 1991/02/16
  579. 1991/02/16 + 1 => 1991/02/17
  580. today() => 1991/02/16
  581. 1991/02/16 - 1 => 1991/02/15
  582. min(1991/02/16, 1991/02/17, 1991/02/15) => 1991/02/15
  583. set a038 minute(11:33)
  584. minute(11:33) => 33
  585. set a039 mon(today())
  586. today() => 1991/02/16
  587. mon(1991/02/16) => "February"
  588. set a040 monnum(today())
  589. today() => 1991/02/16
  590. monnum(1991/02/16) => 2
  591. set a041 ord(3)
  592. ord(3) => "3rd"
  593. set a042 ord(4)
  594. ord(4) => "4th"
  595. set a043 ostype()
  596. ostype() => "UNIX"
  597. set a044 plural(2)
  598. plural(2) => "s"
  599. set a045 plural(2, "ies")
  600. plural(2, "ies") => "iess"
  601. set a046 plural(2, "y", "ies")
  602. plural(2, "y", "ies") => "ies"
  603. set a047 sgn(-2)
  604. - 2 => -2
  605. sgn(-2) => -1
  606. set a048 shell("echo foo")
  607. shell("echo foo") => "foo"
  608. set a049 strlen("sadjflkhsldkfhsdlfjhk")
  609. strlen("sadjflkhsldkfhsdlfjhk") => 21
  610. set a050 substr(a049, 2)
  611. a049 => 21
  612. substr(21, 2) => Type mismatch
  613. ../tests/test.rem(214): Type mismatch
  614. set a051 substr(a050, 2, 6)
  615. a050 => ../tests/test.rem(215): Undefined variable: a050
  616. set a052 time(1+2, 3+4)
  617. 1 + 2 => 3
  618. 3 + 4 => 7
  619. time(3, 7) => 03:07
  620. rem 10 jan 1992 AT 11:22 CAL
  621. ../tests/test.rem(217): Trig = Friday, 10 January, 1992
  622. set a053 trigdate()
  623. trigdate() => 1992/01/10
  624. set a054 trigtime()
  625. trigtime() => 11:22
  626. set a055 trigvalid()
  627. trigvalid() => 1
  628. set a056 upper("sdfjhsdf ksjdfh kjsdfh ksjdfh")
  629. upper("sdfjhsdf ksjdfh kjsdfh ksjdfh") => "SDFJHSDF KSJDFH KJSDFH KSJDFH"
  630. set a057 value("a05"+"6")
  631. "a05" + "6" => "a056"
  632. value("a056") => "SDFJHSDF KSJDFH KJSDFH KSJDFH"
  633. set a058 version()
  634. version() => "03.00.19"
  635. set a059 wkday(today())
  636. today() => 1991/02/16
  637. wkday(1991/02/16) => "Saturday"
  638. set a060 wkdaynum(today())
  639. today() => 1991/02/16
  640. wkdaynum(1991/02/16) => 6
  641. set a061 year(today())
  642. today() => 1991/02/16
  643. year(1991/02/16) => 1991
  644. set a062 1+2*(3+4-(5*7/2))
  645. 3 + 4 => 7
  646. 5 * 7 => 35
  647. 35 / 2 => 17
  648. 7 - 17 => -10
  649. 2 * -10 => -20
  650. 1 + -20 => -19
  651. set a063 1>=2
  652. 1 >= 2 => 0
  653. set a064 1<2 || 3 > 4
  654. 1 < 2 => 1
  655. 3 > 4 => 0
  656. 1 || 0 => 1
  657. set a065 1 && 1
  658. 1 && 1 => 1
  659. set a066 !a065
  660. a065 => 1
  661. ! 1 => 0
  662. set a067 typeof(2)
  663. typeof(2) => "INT"
  664. set a068 typeof("foo")
  665. typeof("foo") => "STRING"
  666. set a069 typeof(11:33)
  667. typeof(11:33) => "TIME"
  668. set a070 typeof(today())
  669. today() => 1991/02/16
  670. typeof(1991/02/16) => "DATE"
  671. fset g(x,y) max(x,y)
  672. fset h(x,y) min(g(x+y, x*y), g(x-y, x/y))
  673. set a071 g(1, 2)
  674. Entering UserFN g(1, 2)
  675. x => 1
  676. y => 2
  677. max(1, 2) => 2
  678. Leaving UserFN g() => 2
  679. set a072 h(2, 3)
  680. Entering UserFN h(2, 3)
  681. x => 2
  682. y => 3
  683. 2 + 3 => 5
  684. x => 2
  685. y => 3
  686. 2 * 3 => 6
  687. Entering UserFN g(5, 6)
  688. x => 5
  689. y => 6
  690. max(5, 6) => 6
  691. Leaving UserFN g() => 6
  692. x => 2
  693. y => 3
  694. 2 - 3 => -1
  695. x => 2
  696. y => 3
  697. 2 / 3 => 0
  698. Entering UserFN g(-1, 0)
  699. x => -1
  700. y => 0
  701. max(-1, 0) => 0
  702. Leaving UserFN g() => 0
  703. min(6, 0) => 0
  704. Leaving UserFN h() => 0
  705. set a073 h("foo", 11:33)
  706. Entering UserFN h("foo", 11:33)
  707. x => "foo"
  708. y => 11:33
  709. "foo" + 11:33 => "foo11:33"
  710. x => "foo"
  711. y => 11:33
  712. "foo" * 11:33 => Type mismatch
  713. ../tests/test.rem(240): `*': Type mismatch
  714. Leaving UserFN h() => Type mismatch
  715. set a074 dosubst("%a %b %c %d %e %f %g %h", '1992/5/5')
  716. dosubst("%a %b %c %d %e %f %g %h", 1992/05/05) => "on Tuesday, 5 May, 1992 in 444 days' tim"...
  717. msg [a074]%
  718. ../tests/test.rem(242): Trig = Saturday, 16 February, 1991
  719. a074 => "on Tuesday, 5 May, 1992 in 444 days' tim"...
  720. on Tuesday, 5 May, 1992 in 444 days' time on Tuesday 5 on 05/05/1992 on 05/05/1992 on Tuesday, 5 May on 05/05
  721. set a075 dosubst("%i %j %k %l %m %n %o %p", '1992/5/5')
  722. dosubst("%i %j %k %l %m %n %o %p", 1992/05/05) => "on 05/05 on Tuesday, May 5th, 1992 on Tu"...
  723. msg [a075]%
  724. ../tests/test.rem(244): Trig = Saturday, 16 February, 1991
  725. a075 => "on 05/05 on Tuesday, May 5th, 1992 on Tu"...
  726. on 05/05 on Tuesday, May 5th, 1992 on Tuesday, May 5th on 1992/05/05 May 5  s
  727. set a076 dosubst("%q %r %s %t %u %v %w %x", '1992/5/5')
  728. dosubst("%q %r %s %t %u %v %w %x", 1992/05/05) => "s' 05 th 05 on Tuesday, 5th May, 1992 on"...
  729. msg [a076]%
  730. ../tests/test.rem(246): Trig = Saturday, 16 February, 1991
  731. a076 => "s' 05 th 05 on Tuesday, 5th May, 1992 on"...
  732. s' 05 th 05 on Tuesday, 5th May, 1992 on Tuesday, 5th May Tuesday 444
  733. set a077 dosubst("%y %z", '1992/5/5')
  734. dosubst("%y %z", 1992/05/05) => "1992 92
  735. "
  736. msg [a077]%
  737. ../tests/test.rem(248): Trig = Saturday, 16 February, 1991
  738. a077 => "1992 92
  739. "
  740. 1992 92
  741. set a078 easterdate(today())
  742. today() => 1991/02/16
  743. easterdate(1991/02/16) => 1991/03/31
  744. set a079 easterdate(1992)
  745. easterdate(1992) => 1992/04/19
  746. set a080 easterdate(1995)
  747. easterdate(1995) => 1995/04/16
  748. set a081 ""
  749. dump
  750.     Variable  Value
  751.  
  752.         a017  29
  753.         a036  "bar"
  754.         a055  1
  755.         a074  "on Tuesday, 5 May, 1992 in 444 days' tim"...
  756.         a008  "11:44"
  757.         a027  0
  758.         a046  "ies"
  759.         a065  1
  760.         a018  1
  761.         a037  1991/02/15
  762.         a056  "SDFJHSDF KSJDFH KJSDFH KSJDFH"
  763.         a075  "on 05/05 on Tuesday, May 5th, 1992 on Tu"...
  764.         a028  1
  765.         a047  -1
  766.         a066  0
  767.         a019  0
  768.         a038  33
  769.         a057  "SDFJHSDF KSJDFH KJSDFH KSJDFH"
  770.         a076  "s' 05 th 05 on Tuesday, 5th May, 1992 on"...
  771.         a029  0
  772.         a048  "foo"
  773.         a067  "INT"
  774.         a039  "February"
  775.         a058  "03.00.19"
  776.         a077  "1992 92
  777. "
  778.         a049  21
  779.         a068  "STRING"
  780.         a059  "Saturday"
  781.         a078  1991/03/31
  782.         a069  "TIME"
  783.         a079  1992/04/19
  784.         a000  1
  785.         a010  12
  786.         a001  1
  787.         a020  "../tests/test.rem"
  788.         a011  704
  789.         a030  1
  790.         a002  102
  791.         a021  "foo bar baz"
  792.         a040  2
  793.         a012  411
  794.         a031  "foobarbaz"
  795.         a003  1990
  796.         a022  11
  797.         a041  "3rd"
  798.         a060  6
  799.         a013  1992/02/02
  800.         a032  34
  801.         a070  "DATE"
  802.         a004  "B7BMB"
  803.         a023  1
  804.         a042  "4th"
  805.         a061  1991
  806.         a080  1995/04/16
  807.         a033  "foo"
  808.         a052  03:07
  809.         a071  2
  810.         a005  "baz"
  811.         a024  0
  812.         a043  "UNIX"
  813.         a062  -19
  814.         a081  ""
  815.         a015  16
  816.         a034  1991/02/17
  817.         a053  1992/01/10
  818.         a072  0
  819.         a006  "1"
  820.         a025  4
  821.         a044  "s"
  822.         a063  0
  823.         a016  28
  824.         a035  1
  825.         a054  11:22
  826.         a007  "1991/02/16"
  827.         a026  7
  828.         a045  "iess"
  829.         a064  1
  830.  
  831.