1e747b5ff33dc577512628079d1df2f7c2a534fc
[scilab.git] / scilab / modules / javasci / tests / java / org / scilab / tests / modules / javasci / testReadWrite.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010 - DIGITEO - Sylvestre LEDRU
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12 package org.scilab.tests.modules.javasci;
13
14 import org.testng.annotations.*;
15
16 import org.scilab.modules.javasci.Scilab;
17 import org.scilab.modules.javasci.JavasciException;
18 import org.scilab.modules.javasci.JavasciException.InitializationException;
19 import org.scilab.modules.javasci.JavasciException.UnsupportedTypeException;
20 import org.scilab.modules.javasci.JavasciException.UndefinedVariableException;
21 import org.scilab.modules.types.ScilabType;
22 import org.scilab.modules.types.ScilabDouble;
23 import org.scilab.modules.types.ScilabBoolean;
24 import org.scilab.modules.types.ScilabString;
25 import org.scilab.modules.types.ScilabTypeEnum;
26
27 public class testReadWrite {
28     private Scilab sci;
29
30     /* 
31      * This method will be called for each test.
32      * with @AfterMethod, this ensures that all the time the engine is closed
33      * especially in case of error.
34      * Otherwise, the engine might be still running and all subsequent tests
35      * would fail.
36      */ 
37     @BeforeMethod
38     public void open() throws NullPointerException, JavasciException {
39         sci = new Scilab();
40         assert sci.open() == true;
41     }
42
43     @Test(sequential = true) 
44     public void putAndGetDoubleTest() throws NullPointerException, JavasciException {
45         double [][]a={{21.2, 22.0, 42.0, 39.0},{23.2, 24.0, 44.0, 40.0}};
46         ScilabDouble aOriginal = new ScilabDouble(a);
47         sci.put("a",aOriginal);
48         assert sci.exec("somme = sum(a);") == true;
49
50         ScilabDouble aFromScilab = (ScilabDouble)sci.get("a");
51
52         assert aFromScilab.equals(aOriginal);
53     }
54
55     @Test(sequential = true) 
56     public void putAndGetComplexDoubleTest() throws NullPointerException, JavasciException {
57         double [][]a={{21.2, 22.0, 42.0, 39.0},{23.2, 24.0, 44.0, 40.0}};
58         double [][]aImg={{212.2, 221.0, 423.0, 393.0},{234.2, 244.0, 441.0, 407.0}};
59
60         ScilabDouble aOriginal = new ScilabDouble(a, aImg);
61         sci.put("a",aOriginal);
62
63         ScilabDouble aFromScilab = (ScilabDouble)sci.get("a");
64
65         assert aFromScilab.equals(aOriginal);
66     }
67
68
69
70     @Test(sequential = true) 
71     public void putAndGetBooleanTest() throws NullPointerException, JavasciException {
72         boolean [][]a={{true, true, false, false},{true, false, true, false}};
73         ScilabBoolean aOriginal = new ScilabBoolean(a);
74         sci.put("a",aOriginal);
75
76         ScilabBoolean aFromScilab = (ScilabBoolean)sci.get("a");
77
78         assert aFromScilab.equals(aOriginal);
79     }
80
81     @Test(sequential = true) 
82     public void putAndGetStringTest() throws NullPointerException, JavasciException {
83         String [][]a={{"String1", "String2", "String3", "String4"},
84                       {"String5", "String6", "My String 7", "String8"}};
85         ScilabString aOriginal = new ScilabString(a);
86         sci.put("a",aOriginal);
87
88         assert sci.exec("checksize = and(size(a)==[2,4]);") == true;
89
90         ScilabBoolean checksize = (ScilabBoolean)sci.get("checksize");
91         assert checksize.getData()[0][0] == true;
92
93         ScilabString aFromScilab = (ScilabString)sci.get("a");
94
95         assert aFromScilab.equals(aOriginal);
96     }
97
98     @Test(sequential = true, expectedExceptions = UnsupportedTypeException.class)
99     public void ReadSparseUnsupportedTypeExceptionTest() throws NullPointerException, JavasciException {
100         assert sci.exec("W=sparse([1,2;4,5;3,10],[1,2,3]);") == true;
101         assert sci.getVariableType("W") == ScilabTypeEnum.sci_sparse;
102         sci.get("W"); /* Will launch an UnsupportedTypeException exception */
103     }
104
105     @Test(sequential = true, expectedExceptions = UnsupportedTypeException.class)
106     public void ReadStructUnsupportedTypeExceptionTest() throws NullPointerException, JavasciException {
107         assert sci.exec("myDate=struct('day',25,'month' ,'DEC','year',2006)") == true;
108         assert sci.getVariableType("myDate") == ScilabTypeEnum.sci_mlist;
109         sci.get("myDate"); /* Will launch an UnsupportedTypeException exception */
110     }
111
112     @Test(sequential = true, expectedExceptions = UndefinedVariableException.class)
113     public void UndefinedVariableExceptionTest() throws NullPointerException, JavasciException {
114         sci.get("undefinedVar"); /* Will launch an UnsupportedTypeException exception */
115     }
116
117     /**
118      * See #open()
119      */
120     @AfterMethod
121     public void close() {
122         sci.close();
123         
124     }
125 }