ob-tests: adding tests of new un-named arguments
[org-mode/org-jambu.git] / testing / examples / babel.org
blob013a4b6081c6c51f59ac71d12283737e3bf71afe
1 #+Title: a collection of examples for Babel tests
3 * =:noweb= header argument expansion
4   :PROPERTIES:
5   :ID:       eb1f6498-5bd9-45e0-9c56-50717053e7b7
6   :END:
8 #+source: noweb-example
9 #+begin_src emacs-lisp
10   (message "expanded")
11 #+end_src
13 #+begin_src emacs-lisp :noweb yes
14   ;; noweb-yes-start
15   <<noweb-example>>
16   ;; noweb-yes-end
17 #+end_src
19 #+begin_src emacs-lisp :noweb no
20   ;; noweb-no-start
21   <<noweb-example>>
22   ;; noweb-no-end
23 #+end_src
25 #+begin_src emacs-lisp :noweb tangle
26   ;; noweb-tangle-start
27   <<noweb-example>>
28   ;; noweb-tangle-end
29 #+end_src
31 * elisp forms in header arguments
32   :PROPERTIES:
33   :ID:       22d67284-bf14-4cdc-8319-f4bd876829d7
34   :var:      prop=(+ 2 2)
35   :END:
37 #+begin_src emacs-lisp
38   prop
39 #+end_src
41 #+results:
42 : 4
44 * excessive id links on tangling
45   :PROPERTIES:
46   :ID:       ef06fd7f-012b-4fde-87a2-2ae91504ea7e
47   :END:
49 ** no, don't give me an ID
50 #+begin_src emacs-lisp :tangle no
51   (message "not to be tangled")
52 #+end_src
54 ** yes, I'd love an ID
55    :PROPERTIES:
56    :ID:       ae7b55ca-9ef2-4d30-bd48-da30e35fd0f3
57    :END:
58 #+begin_src emacs-lisp :tangle no
59   (message "for tangling")
60 #+end_src
61 * simple variable resolution
62   :PROPERTIES:
63   :ID:       f68821bc-7f49-4389-85b5-914791ee3718
64   :END:
66 #+source: four
67 #+begin_src emacs-lisp
68   (list 1 2 3 4)
69 #+end_src
71 #+begin_src emacs-lisp :var four=four
72   (length four)
73 #+end_src
75 #+results:
76 : 4
78 * multi-line header arguments
79   :PROPERTIES:
80   :ID:       b77c8857-6c76-4ea9-8a61-ddc2648d96c4
81   :END:
83 #+headers: :var letters='(a b c d e f g)
84 #+begin_src emacs-lisp :var numbers='(1 2 3 4 5 6 7)
85   (map 'list #'list numbers letters)
86 #+end_src
88 #+results:
89 | 1 | a |
90 | 2 | b |
91 | 3 | c |
92 | 4 | d |
93 | 5 | e |
94 | 6 | f |
95 | 7 | g |
97 * simple named code block
98   :PROPERTIES:
99   :ID:       0d82b52d-1bb9-4916-816b-2c67c8108dbb
100   :END:
102 #+source: i-have-a-name
103 #+begin_src emacs-lisp
104   42
105 #+end_src
107 #+results: 
108 : 42
110 #+results: i-have-a-name
111 : 42
113 * Pascal's Triangle -- export test
114   :PROPERTIES:
115   :ID:       92518f2a-a46a-4205-a3ab-bcce1008a4bb
116   :END:
118 #+source: pascals-triangle
119 #+begin_src emacs-lisp :var n=5 :exports both
120   (defun pascals-triangle (n)
121     (if (= n 0)
122         (list (list 1))
123       (let* ((prev-triangle (pascals-triangle (- n 1)))
124              (prev-row (car (reverse prev-triangle))))
125         (append prev-triangle
126                 (list (map 'list #'+
127                            (append prev-row '(0))
128                            (append '(0) prev-row)))))))
130   (pascals-triangle n)
131 #+end_src
133 * calling code blocks from inside table
134   :PROPERTIES:
135   :ID:       6d2ff4ce-4489-4e2a-9c65-e3f71f77d975
136   :END:
138 #+source: take-sqrt
139 #+begin_src emacs-lisp :var n=9
140   (sqrt n)
141 #+end_src
143 * executing an lob call line
144   :PROPERTIES:
145   :results:  silent
146   :ID:       fab7e291-fde6-45fc-bf6e-a485b8bca2f0
147   :END:
149 #+call: echo(input="testing")
150 #+call: echo(input="testing") :results vector
151 #+call: echo[:var input="testing"]()
152 #+call: echo[:var input="testing"]() :results vector
153 #+call: echo("testing")
154 #+call: echo("testing") :results vector
156 * parsing header arguments
157   :PROPERTIES:
158   :ID:       7eb0dc6e-1c53-4275-88b3-b22f3113b9c3
159   :END:
161 #+begin_src example-lang :session     :results output :var num=9
162   the body
163 #+end_src
164 * conflicting blocks on export
165   :PROPERTIES:
166   :ID:       5daa4d03-e3ea-46b7-b093-62c1b7632df3
167   :END:
168 #+results: a-list
169 - a
170 - b
171 - c
173 #+begin_src emacs-lisp :results wrap :exports both
174     "code block results"
175 #+end_src
176 #+begin_src emacs-lisp :var lst=a-list :results list
177   (reverse lst)
178 #+end_src
179 * using the =:noweb-ref= header argument
180   :PROPERTIES:
181   :ID:       54d68d4b-1544-4745-85ab-4f03b3cbd8a0
182   :END:
184 #+begin_src sh :tangle yes :noweb yes :shebang #!/bin/sh
185   <<fullest-disk>>
186 #+end_src
188 ** query all mounted disks
189 #+begin_src sh :noweb-ref fullest-disk
190   df \
191 #+end_src
193 ** strip the header row
194 #+begin_src sh :noweb-ref fullest-disk
195   |sed '1d' \
196 #+end_src
198 ** sort by the percent full
199 #+begin_src sh :noweb-ref fullest-disk
200   |awk '{print $5 " " $6}'|sort -n |tail -1 \
201 #+end_src
203 ** extract the mount point
204 #+begin_src sh :noweb-ref fullest-disk
205   |awk '{print $2}'
206 #+end_src