Re: [O] [PATCH][babel] add a string input to ob-octave
Fantastic, I will apply this as soon as your FSF attribution goes through. Speaking of has there been any progress on that front? Thanks -- Eric Litvinov Sergey slitvi...@gmail.com writes: In other words, replacing (or var nil) with var would be enough Thanks. Fixed in the patch below. The patch also adds an ert test. From b4b679abdc7bec9f3033b50f81d567a0bb48b147 Mon Sep 17 00:00:00 2001 From: Litvinov Sergey slitvi...@gmail.com Date: Sat, 1 Oct 2011 13:37:56 +0200 Subject: [PATCH 2/2] Remove redundant condition check in ob-octave.el. Add a test. --- lisp/ob-octave.el |4 ++-- testing/examples/ob-octave-test.org |6 -- testing/lisp/test-ob-octave.el |6 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lisp/ob-octave.el b/lisp/ob-octave.el index cfc1f1d..f840739 100644 --- a/lisp/ob-octave.el +++ b/lisp/ob-octave.el @@ -119,9 +119,9 @@ specifying a variable of the same value. (if (listp (car var)) ; ,)) ]) (cond ((stringp var) - (format \'%s\' (or var nil))) + (format \'%s\' var)) (t - (format %s (or var nil)) + (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/examples/ob-octave-test.org b/testing/examples/ob-octave-test.org index 37cf3f9..97d9b00 100644 --- a/testing/examples/ob-octave-test.org +++ b/testing/examples/ob-octave-test.org @@ -24,7 +24,6 @@ Input an integer variable ans = s #+end_src - Input an array #+begin_src octave :exports results :results silent :var s='(1.0 2.0 3.0) ans = s @@ -40,4 +39,7 @@ Input a string 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 index f3972ec..145266d 100644 --- a/testing/lisp/test-ob-octave.el +++ b/testing/lisp/test-ob-octave.el @@ -53,3 +53,9 @@ (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) + -- Eric Schulte http://cs.unm.edu/~eschulte/
Re: [O] [PATCH][babel] add a string input to ob-octave
Hello, Litvinov Sergey slitvi...@gmail.com writes: +(cond + ((stringp var) + (format \'%s\' (or var nil))) + (t + (format %s (or var nil)) Just nitpicking: In the first case, var is already identified as a string, so it will always be non-nil, and your or is useless. In the second case, (or var nil) is redundant, as (format %s nil) already returns nil. In other words, replacing (or var nil) with var would be enough in both cases. Regards, -- Nicolas Goaziou
Re: [O] [PATCH][babel] add a string input to ob-octave
In other words, replacing (or var nil) with var would be enough Thanks. Fixed in the patch below. The patch also adds an ert test. From b4b679abdc7bec9f3033b50f81d567a0bb48b147 Mon Sep 17 00:00:00 2001 From: Litvinov Sergey slitvi...@gmail.com Date: Sat, 1 Oct 2011 13:37:56 +0200 Subject: [PATCH 2/2] Remove redundant condition check in ob-octave.el. Add a test. --- lisp/ob-octave.el |4 ++-- testing/examples/ob-octave-test.org |6 -- testing/lisp/test-ob-octave.el |6 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lisp/ob-octave.el b/lisp/ob-octave.el index cfc1f1d..f840739 100644 --- a/lisp/ob-octave.el +++ b/lisp/ob-octave.el @@ -119,9 +119,9 @@ specifying a variable of the same value. (if (listp (car var)) ; ,)) ]) (cond ((stringp var) - (format \'%s\' (or var nil))) + (format \'%s\' var)) (t - (format %s (or var nil)) + (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/examples/ob-octave-test.org b/testing/examples/ob-octave-test.org index 37cf3f9..97d9b00 100644 --- a/testing/examples/ob-octave-test.org +++ b/testing/examples/ob-octave-test.org @@ -24,7 +24,6 @@ Input an integer variable ans = s #+end_src - Input an array #+begin_src octave :exports results :results silent :var s='(1.0 2.0 3.0) ans = s @@ -40,4 +39,7 @@ Input a string 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 index f3972ec..145266d 100644 --- a/testing/lisp/test-ob-octave.el +++ b/testing/lisp/test-ob-octave.el @@ -53,3 +53,9 @@ (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) + -- 1.7.4.1
[O] [PATCH][babel] add a string input to ob-octave
Please consider a tiny patch to add a string input variable to ob-octave. I also add tests for ob-octave. From 4848960cefc1b1486705f7aed022ba199189b6e1 Mon Sep 17 00:00:00 2001 From: Litvinov Sergey slitvi...@gmail.com 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 000..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 000..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