summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLitvinov Sergey <slitvinov@gmail.com>2011-11-08 22:19:04 +0100
committerEric Schulte <eric.schulte@gmx.com>2011-12-10 06:12:29 -0700
commite6377a8295a18ca98c275121cead340b9036c2ba (patch)
tree3923dcb6ddd9b3c1c13b5d020c27b47eada9b9ad
parent69aa8884ed7319a28ff8f1ab9068497a1cc1bb5b (diff)
downloadorg-mode-e6377a8295a18ca98c275121cead340b9036c2ba.tar.gz
Add string input variables to ob-octave.el. Add tests for ob-octave.el
-rw-r--r--lisp/ob-octave.el6
-rw-r--r--testing/README.org1
-rw-r--r--testing/examples/ob-octave-test.org45
-rw-r--r--testing/lisp/test-ob-octave.el60
4 files changed, 111 insertions, 1 deletions
diff --git a/lisp/ob-octave.el b/lisp/ob-octave.el
index 3d90954..f840739 100644
--- a/lisp/ob-octave.el
+++ b/lisp/ob-octave.el
@@ -117,7 +117,11 @@ specifying a variable of the same value."
(if (listp var)
(concat "[" (mapconcat #'org-babel-octave-var-to-octave var
(if (listp (car var)) "; " ",")) "]")
- (format "%s" (or var "nil"))))
+ (cond
+ ((stringp var)
+ (format "\'%s\'" var))
+ (t
+ (format "%s" var)))))
(defun org-babel-prep-session:octave (session params &optional matlabp)
"Prepare SESSION according to the header arguments specified in PARAMS."
diff --git a/testing/README.org b/testing/README.org
index 26853ba..faa0dd5 100644
--- a/testing/README.org
+++ b/testing/README.org
@@ -80,6 +80,7 @@ First tangle this file out to your desktop.
(concat org-dir "/testing/examples/ob-C-test.org")
(concat org-dir "/testing/examples/normal.org")
(concat org-dir "/testing/examples/ob-awk-test.org")
+ (concat org-dir "/testing/examples/ob-octave.org")
(concat org-dir "/testing/examples/ob-fortran-test.org")
(concat org-dir "/testing/examples/ob-maxima-test.org")
(concat org-dir "/testing/examples/link-in-heading.org")
diff --git a/testing/examples/ob-octave-test.org b/testing/examples/ob-octave-test.org
new file mode 100644
index 0000000..97d9b00
--- /dev/null
+++ b/testing/examples/ob-octave-test.org
@@ -0,0 +1,45 @@
+#+Title: a collection of examples for ob-octave tests
+#+OPTIONS: ^:nil
+
+* Simple tests
+ :PROPERTIES:
+ :ID: 54dcd61d-cf6c-4d7a-b9e5-854953c8a753
+ :END:
+Number output
+#+begin_src octave :exports results :results silent
+ans = 10
+#+end_src
+
+Array output
+#+begin_src octave :exports results :results silent
+ans = 1:4'
+#+end_src
+
+* Input tests
+ :PROPERTIES:
+ :ID: cc2d82bb-2ac0-45be-a0c8-d1463b86a3ba
+ :END:
+Input an integer variable
+#+begin_src octave :exports results :results silent :var s=42
+ans = s
+#+end_src
+
+Input an array
+#+begin_src octave :exports results :results silent :var s='(1.0 2.0 3.0)
+ans = s
+#+end_src
+
+Input a matrix
+#+begin_src octave :exports results :results silent :var s='((1 2) (3 4))
+ans = s
+#+end_src
+
+Input a string
+#+begin_src octave :exports results :results silent :var s="test"
+ans = s(1:2)
+#+end_src
+
+Input elisp nil
+#+begin_src octave :exports results :results silent :var s='nil
+ans = s
+#+end_src
diff --git a/testing/lisp/test-ob-octave.el b/testing/lisp/test-ob-octave.el
new file mode 100644
index 0000000..528a94a
--- /dev/null
+++ b/testing/lisp/test-ob-octave.el
@@ -0,0 +1,60 @@
+;;; test-ob-octave.el --- tests for ob-octave.el
+
+;; Copyright (c) 2010 Sergey Litvinov
+;; Authors: Sergey Litvinov
+
+;; Released under the GNU General Public License version 3
+;; see: http://www.gnu.org/licenses/gpl-3.0.html
+
+(org-test-for-executable "octave")
+
+(let ((load-path (cons (expand-file-name
+ ".." (file-name-directory
+ (or load-file-name buffer-file-name)))
+ load-path)))
+ (require 'org-test)
+ (require 'org-test-ob-consts))
+
+(require 'ob-octave)
+
+(ert-deftest ob-octave/input-none ()
+ "Number output"
+ (org-test-at-id "54dcd61d-cf6c-4d7a-b9e5-854953c8a753"
+ (org-babel-next-src-block)
+ (should (= 10 (org-babel-execute-src-block)))))
+
+(ert-deftest ob-octave/output-vector ()
+ "Vector output"
+ (org-test-at-id "54dcd61d-cf6c-4d7a-b9e5-854953c8a753"
+ (org-babel-next-src-block 2)
+ (should (equal '((1 2 3 4)) (org-babel-execute-src-block)))))
+
+(ert-deftest ob-octave/input-variable ()
+ "Input variable"
+ (org-test-at-id "cc2d82bb-2ac0-45be-a0c8-d1463b86a3ba"
+ (org-babel-next-src-block)
+ (should (= 42 (org-babel-execute-src-block)))))
+
+(ert-deftest ob-octave/input-array ()
+ "Input an array"
+ (org-test-at-id "cc2d82bb-2ac0-45be-a0c8-d1463b86a3ba"
+ (org-babel-next-src-block 2)
+ (should (equal '((1 2 3)) (org-babel-execute-src-block)))))
+
+(ert-deftest ob-octave/input-matrix ()
+ "Input a matrix"
+ (org-test-at-id "cc2d82bb-2ac0-45be-a0c8-d1463b86a3ba"
+ (org-babel-next-src-block 3)
+ (should (equal '((1 2) (3 4)) (org-babel-execute-src-block)))))
+
+(ert-deftest ob-octave/input-string ()
+ "Input a string"
+ (org-test-at-id "cc2d82bb-2ac0-45be-a0c8-d1463b86a3ba"
+ (org-babel-next-src-block 4)
+ (should (equal "te" (org-babel-execute-src-block)))))
+
+(ert-deftest ob-octave/input-nil ()
+ "Input elisp nil"
+ (org-test-at-id "cc2d82bb-2ac0-45be-a0c8-d1463b86a3ba"
+ (org-babel-next-src-block 5)
+ (should (equal nil (org-babel-execute-src-block)))))