/ob-picolisp-more-tests.org

https://github.com/tj64/ob-picolisp · Org · 583 lines · 439 code · 143 blank · 1 comment · 1 complexity · ce738bc95e32ea4c16bd7b0444c13184 MD5 · raw file

  1. * Test Cases for ob-picolisp.el
  2. ** Possible combinations of header arguments
  3. #+tblname: header-args-combinations
  4. | evaluation | collection | type |
  5. | (:session) | (:results) | (:results) |
  6. |------------+------------+-------------------|
  7. | external | value | table (vector) |
  8. | | | scalar (verbatim) |
  9. | | | file |
  10. | | | raw (org) |
  11. | | | html |
  12. | | | latex |
  13. | | | code |
  14. | | | pp |
  15. | | output | table (vector) |
  16. | | | scalar (verbatim) |
  17. | | | file |
  18. | | | raw (org) |
  19. | | | html |
  20. | | | latex |
  21. | | | code |
  22. | | | pp |
  23. | session | value | table (vector) |
  24. | | | scalar (verbatim) |
  25. | | | file |
  26. | | | raw (org) |
  27. | | | html |
  28. | | | latex |
  29. | | | code |
  30. | | | pp |
  31. | | output | table (vector) |
  32. | | | scalar (verbatim) |
  33. | | | file |
  34. | | | raw (org) |
  35. | | | html |
  36. | | | latex |
  37. | | | code |
  38. | | | pp |
  39. #+tblname: other-header-args
  40. | :results | silent | replace | append | prepend |
  41. | (handling) | | | | |
  42. | :exports | code | results | both | none |
  43. | :comments | yes | (no?) | | |
  44. | :noweb | no | yes | | |
  45. | :tangle | yes | no | filename | |
  46. | :no-expand | | | | |
  47. | :file | | | | |
  48. | :dir | | | | |
  49. | :cache | no | yes | | |
  50. | :var | x=y | | | |
  51. | :hlines | no | yes | | |
  52. | :colnames | nil | no | yes | |
  53. | :rownames | no | yes | | |
  54. | :shebang | "string" | | | |
  55. | :eval | never | query | | |
  56. ** data
  57. *** table-data
  58. :PROPERTIES:
  59. :hlines: no
  60. :END:
  61. #+tblname: tbl1
  62. | 1 | 2 | 3 |
  63. |---+---+---|
  64. | 4 | 5 | 6 |
  65. | 7 | 8 | 9 |
  66. #+tblname: tbl2
  67. | col1 | col2 | col3 |
  68. |------+------+------|
  69. | 4 | 5 | 6 |
  70. | 7 | 8 | 9 |
  71. #+tblname: tbl3
  72. | row1 | 2 | 3 |
  73. |------+---+---|
  74. | row2 | 5 | 6 |
  75. | row3 | 8 | 9 |
  76. #+tblname: tbl4
  77. | | col2 | col3 |
  78. |------+------+------|
  79. | row2 | 5 | 6 |
  80. | row3 | 8 | 9 |
  81. ** Testcases
  82. :PROPERTIES:
  83. :var: tbl=tbl1
  84. :hlines: no
  85. :colnames: no
  86. :END:
  87. *** Turn off confirmation of evaluations
  88. #+begin_src emacs-lisp :results silent
  89. (if org-confirm-babel-evaluate
  90. (setq org-confirm-babel-evaluate nil))
  91. #+end_src
  92. *** External Evaluation
  93. **** :results value
  94. #+srcname: exvaltable
  95. #+begin_src picolisp :results value table
  96. (mapcar + (car tbl) (cadr tbl))
  97. #+end_src
  98. #+results: exvaltable
  99. | 5 | 7 | 9 |
  100. #+srcname: exvalscalar
  101. #+begin_src picolisp :results value scalar
  102. (mapcar + (car tbl) (cadr tbl))
  103. #+end_src
  104. #+results: exvalscalar
  105. : (5 7 9)
  106. #+srcname: exvalorg
  107. #+begin_src picolisp :results value org
  108. (mapcar + (car tbl) (cadr tbl))
  109. #+end_src
  110. #+results: exvalorg
  111. #+BEGIN_ORG
  112. | 5 | 7 | 9 |
  113. #+END_ORG
  114. #+srcname: exvalhtml
  115. #+begin_src picolisp :results value html
  116. (load "@lib/http.l" "@lib/xhtml.l" "@lib/form.l")
  117. (html 0 "Hello" "@lib.css" NIL
  118. (<h1> NIL "Hello World!")
  119. (<br> "This is some text.")
  120. (ht:Prin "And this is a number: " (+ 1 2 3)) )
  121. #+end_src
  122. #+results: exvalhtml
  123. #+BEGIN_HTML
  124. </html>
  125. #+END_HTML
  126. #+srcname: exvallatex
  127. #+begin_src picolisp :results value latex
  128. (str '(This is \\emph{emphased text} with some math:
  129. $sum_{0 \le i \le n} f(i,x)$ ))
  130. #+end_src
  131. #+results: exvallatex
  132. #+BEGIN_LaTeX
  133. This is \emph {emphased text} with some math: $sum_ {0 \le i \le n} f (i x) $
  134. #+END_LaTeX
  135. #+srcname: exvalcode1
  136. #+begin_src picolisp :results value code
  137. (pp 'pretty)
  138. #+end_src
  139. #+results: exvalcode1
  140. #+BEGIN_SRC picolisp
  141. pretty
  142. #+END_SRC
  143. #+srcname: exvalcode2
  144. #+begin_src picolisp :results value code
  145. '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q)
  146. #+end_src
  147. #+results: exvalcode2
  148. #+BEGIN_SRC picolisp
  149. (a
  150. (b c d)
  151. (e
  152. (f (g) (h) (i))
  153. (j (k) (l) (m)) )
  154. (n o p)
  155. q )
  156. #+END_SRC
  157. #+srcname: exvalpp
  158. #+begin_src picolisp :results value pp
  159. '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q)
  160. #+end_src
  161. #+results: exvalpp
  162. : (a
  163. : (b c d)
  164. : (e
  165. : (f (g) (h) (i))
  166. : (j (k) (l) (m)) )
  167. : (n o p)
  168. : q )
  169. **** :results output
  170. #+srcname: exouttable
  171. #+begin_src picolisp :results output table
  172. (println 4)
  173. (mapcar + (car tbl) (cadr tbl))
  174. #+end_src
  175. #+results: exouttable
  176. : 4
  177. #+srcname: exoutscalar
  178. #+begin_src picolisp :results output scalar
  179. (println 4)
  180. (mapcar + (car tbl) (cadr tbl))
  181. #+end_src
  182. #+results: exoutscalar
  183. : 4
  184. #+srcname: exoutorg
  185. #+begin_src picolisp :results output org
  186. (println 4)
  187. (mapcar + (car tbl) (cadr tbl))
  188. #+end_src
  189. #+results: exoutorg
  190. #+BEGIN_ORG
  191. 4
  192. #+END_ORG
  193. #+srcname: exoutlatex
  194. #+begin_src picolisp :results output latex
  195. (print (str '(This is \emph{emphased text} with some math:
  196. $sum_{0 \le i \le n} f(i,x)$ )))
  197. #+end_src
  198. #+results: exoutlatex
  199. #+BEGIN_LaTeX
  200. "This is emph {emphased text} with some math: $sum_ {0 \\le i \\le n} f (i x) $"
  201. #+END_LaTeX
  202. #+srcname: exoutcode1
  203. #+begin_src picolisp :results output code
  204. (pp 'pretty)
  205. #+end_src
  206. #+results: exoutcode1
  207. #+BEGIN_SRC picolisp
  208. pretty
  209. #+END_SRC
  210. #+results:
  211. #+srcname: exoutcode2
  212. #+begin_src picolisp :results output code
  213. '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q)
  214. #+end_src
  215. #+results: exoutcode2
  216. #+BEGIN_SRC picolisp
  217. (a
  218. (b c d)
  219. (e
  220. (f (g) (h) (i))
  221. (j (k) (l) (m)) )
  222. (n o p)
  223. q )
  224. #+END_SRC
  225. #+results:
  226. #+srcname: exoutpp
  227. #+begin_src picolisp :results output pp
  228. '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q)
  229. #+end_src
  230. #+results: exoutpp
  231. : (a
  232. : (b c d)
  233. : (e
  234. : (f (g) (h) (i))
  235. : (j (k) (l) (m)) )
  236. : (n o p)
  237. : q )
  238. #+srcname: exouthtml
  239. #+begin_src picolisp :results output html
  240. (load "@lib/http.l" "@lib/xhtml.l" "@lib/form.l")
  241. (html 0 "Hello" "@lib.css" NIL
  242. (<h1> NIL "Hello World!")
  243. (<br> "This is some text.")
  244. (ht:Prin "And this is a number: " (+ 1 2 3)) )
  245. #+end_src
  246. #+results: exouthtml
  247. #+BEGIN_HTML
  248. HTTP/1.0 200 OK
  249. Server: PicoLisp
  250. Date: Tue, 25 Oct 2011 19:11:31 GMT
  251. Cache-Control: max-age=0
  252. Cache-Control: private, no-store, no-cache
  253. Content-Type: text/html; charset=utf-8
  254. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  255. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  256. <head>
  257. <title>Hello</title>
  258. <link rel="stylesheet" type="text/css" href="http://:/@lib.css"/>
  259. <script type="text/javascript" src="http://://usr/lib/picolisp/lib/form.js"></script>
  260. </head>
  261. <body><h1>Hello World!</h1>
  262. This is some text.<br/>
  263. And this is a number: 6</body></html>
  264. #+END_HTML
  265. *** Session-based Evaluation
  266. :PROPERTIES:
  267. :session: *PL*
  268. :END:
  269. **** :results value
  270. #+srcname: svaltable
  271. #+begin_src picolisp :results value table
  272. (mapcar + (car tbl) (cadr tbl))
  273. #+end_src
  274. #+results: svaltable
  275. | 5 | 7 | 9 |
  276. #+srcname: svalscalar
  277. #+begin_src picolisp :results value scalar
  278. (mapcar + (car tbl) (cadr tbl))
  279. #+end_src
  280. #+results: svalscalar
  281. : (5 7 9)
  282. #+srcname: svalorg
  283. #+begin_src picolisp :results value org
  284. (mapcar + (car tbl) (cadr tbl))
  285. #+end_src
  286. #+results: svalorg
  287. #+BEGIN_ORG
  288. | 5 | 7 | 9 |
  289. #+END_ORG
  290. #+srcname: svalhtml
  291. #+begin_src picolisp :results value html
  292. (load "@lib/http.l" "@lib/xhtml.l" "@lib/form.l")
  293. (html 0 "Hello" "@lib.css" NIL
  294. (<h1> NIL "Hello World!")
  295. (<br> "This is some text.")
  296. (ht:Prin "And this is a number: " (+ 1 2 3)) )
  297. #+end_src
  298. #+results: svalhtml
  299. #+BEGIN_HTML
  300. </html>
  301. #+END_HTML
  302. #+srcname: svallatex
  303. #+begin_src picolisp :results value latex
  304. (str '(This is \\emph{emphased text} with some math:
  305. $sum_{0 \le i \le n} f(i,x)$ ))
  306. #+end_src
  307. #+results: svallatex
  308. #+BEGIN_LaTeX
  309. $sum_
  310. #+END_LaTeX
  311. #+srcname: svalcode1
  312. #+begin_src picolisp :results value code
  313. (pp 'pretty)
  314. #+end_src
  315. #+results: svalcode1
  316. #+BEGIN_SRC picolisp
  317. pretty-> pretty
  318. #+END_SRC
  319. #+results:
  320. #+srcname: svalcode2
  321. #+begin_src picolisp :results value code
  322. '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q)
  323. #+end_src
  324. #+results: svalcode2
  325. #+BEGIN_SRC picolisp
  326. (a
  327. (b c d)
  328. (e
  329. (f (g) (h) (i))
  330. (j (k) (l) (m)) )
  331. (n o p)
  332. q )-> ")"
  333. #+END_SRC
  334. #+srcname: svalpp
  335. #+begin_src picolisp :results value pp
  336. '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q)
  337. #+end_src
  338. #+results: svalpp
  339. : (a
  340. : (b c d)
  341. : (e
  342. : (f (g) (h) (i))
  343. : (j (k) (l) (m)) )
  344. : (n o p)
  345. : q )-> ")"
  346. **** :results output
  347. #+srcname: souttable
  348. #+begin_src picolisp :results output table
  349. (println 4)
  350. (mapcar + (car tbl) (cadr tbl))
  351. #+end_src
  352. #+results: souttable
  353. : 4
  354. #+srcname: soutscalar
  355. #+begin_src picolisp :results output scalar
  356. (println 4)
  357. (mapcar + (car tbl) (cadr tbl))
  358. #+end_src
  359. #+results: soutscalar
  360. : 4
  361. #+srcname: soutorg
  362. #+begin_src picolisp :results output org
  363. (println 4)
  364. (mapcar + (car tbl) (cadr tbl))
  365. #+end_src
  366. #+results: soutorg
  367. #+BEGIN_ORG
  368. 4
  369. #+END_ORG
  370. #+srcname: soutlatex
  371. #+begin_src picolisp :results output latex
  372. (print (str '(This is \emph{emphased text} with some math:
  373. $sum_{0 \le i \le n} f(i,x)$ )))
  374. #+end_src
  375. #+results: soutlatex
  376. #+BEGIN_LaTeX
  377. $sum_ {0 \\le i \\le n} f (i x) $"
  378. #+END_LaTeX
  379. #+srcname: soutcode1
  380. #+begin_src picolisp :results output code
  381. (pp 'pretty)
  382. #+end_src
  383. #+results: soutcode1
  384. #+BEGIN_SRC picolisp
  385. pretty
  386. #+END_SRC
  387. #+srcname: soutcode2
  388. #+begin_src picolisp :results output code
  389. '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q)
  390. #+end_src
  391. #+results: soutcode2
  392. #+BEGIN_SRC picolisp
  393. (a
  394. (b c d)
  395. (e
  396. (f (g) (h) (i))
  397. (j (k) (l) (m)) )
  398. (n o p)
  399. q )
  400. #+END_SRC
  401. #+srcname: soutpp
  402. #+begin_src picolisp :results output pp
  403. '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q)
  404. #+end_src
  405. #+results: soutpp
  406. : (a
  407. : (b c d)
  408. : (e
  409. : (f (g) (h) (i))
  410. : (j (k) (l) (m)) )
  411. : (n o p)
  412. : q )
  413. #+srcname: southtml
  414. #+begin_src picolisp :results output html
  415. (load "@lib/http.l" "@lib/xhtml.l" "@lib/form.l")
  416. (html 0 "Hello" "@lib.css" NIL
  417. (<h1> NIL "Hello World!")
  418. (<br> "This is some text.")
  419. (ht:Prin "And this is a number: " (+ 1 2 3)) )
  420. #+end_src
  421. #+results: southtml
  422. #+BEGIN_HTML
  423. # <table> redefined
  424. HTTP/1.0 200 OK
  425. PicoLisp
  426. Tue, 25 Oct 2011 19:47:07 GMT
  427. max-age=0
  428. private, no-store, no-cache
  429. text/html; charset=utf-8
  430. DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  431. //www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  432. <head>
  433. <title>Hello</title>
  434. //:/@lib.css"/>
  435. //://usr/lib/picolisp/lib/form.js"></script>
  436. </head>
  437. </h1>
  438. This is some text.<br/>
  439. 6</body></html>
  440. #+END_HTML