From 4848960cefc1b1486705f7aed022ba199189b6e1 Mon Sep 17 00:00:00 2001 From: Litvinov Sergey Date: Sat, 1 Oct 2011 02:04:49 +0200 Subject: [PATCH] Add string input variables to ob-octave.el. Add tests for ob-octave.el --- lisp/ob-octave.el | 6 +++- testing/README.org | 1 + testing/examples/ob-octave-test.org | 43 +++++++++++++++++++++++++++ testing/lisp/test-ob-octave.el | 55 +++++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 1 deletions(-) create mode 100644 testing/examples/ob-octave-test.org create mode 100644 testing/lisp/test-ob-octave.el diff --git a/lisp/ob-octave.el b/lisp/ob-octave.el index 3d90954..cfc1f1d 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\'" (or var "nil"))) + (t + (format "%s" (or var "nil")))))) (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 2f16a55..221a33c 100644 --- a/testing/README.org +++ b/testing/README.org @@ -79,6 +79,7 @@ First tangle this file out to your desktop. (list (concat org-dir "/testing/examples/babel.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/link-in-heading.org") (concat org-dir "/testing/examples/links.org"))) diff --git a/testing/examples/ob-octave-test.org b/testing/examples/ob-octave-test.org new file mode 100644 index 0000000..37cf3f9 --- /dev/null +++ b/testing/examples/ob-octave-test.org @@ -0,0 +1,43 @@ +#+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 + + diff --git a/testing/lisp/test-ob-octave.el b/testing/lisp/test-ob-octave.el new file mode 100644 index 0000000..f3972ec --- /dev/null +++ b/testing/lisp/test-ob-octave.el @@ -0,0 +1,55 @@ +;;; 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))))) + -- 1.7.4.1