From mboxrd@z Thu Jan 1 00:00:00 1970 From: Litvinov Sergey Subject: [PATCH][babel] add a string input to ob-octave Date: Sat, 01 Oct 2011 02:16:01 +0200 Message-ID: <87r52xmuri.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([140.186.70.92]:35846) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R9nFd-0000BJ-5T for emacs-orgmode@gnu.org; Fri, 30 Sep 2011 20:16:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R9nFa-000267-PQ for emacs-orgmode@gnu.org; Fri, 30 Sep 2011 20:16:21 -0400 Received: from lo.gmane.org ([80.91.229.12]:52749) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R9nFa-00024g-AG for emacs-orgmode@gnu.org; Fri, 30 Sep 2011 20:16:18 -0400 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1R9nFY-0001yq-1c for emacs-orgmode@gnu.org; Sat, 01 Oct 2011 02:16:16 +0200 Received: from e181028036.adsl.alicedsl.de ([85.181.28.36]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 01 Oct 2011 02:16:16 +0200 Received: from slitvinov by e181028036.adsl.alicedsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 01 Oct 2011 02:16:16 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Please consider a tiny patch to add a string input variable to ob-octave. I also add tests for ob-octave. --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Add-string-input-variables-to-ob-octave.el.-Add-test.patch >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 --=-=-=--