1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package eu.simuline.octave.examples;
17
18 import eu.simuline.octave.OctaveEngine;
19 import eu.simuline.octave.OctaveEngineFactory;
20 import eu.simuline.octave.type.Octave;
21 import eu.simuline.octave.type.OctaveDouble;
22 import eu.simuline.octave.type.OctaveFunctionHandle;
23 import eu.simuline.octave.type.OctaveString;
24
25 import static org.junit.Assert.assertEquals;
26
27 import org.junit.Ignore;
28 import org.junit.Test;
29
30
31
32
33 public class HomeExampleTest {
34
35
36 @Test public void test() {
37
38 final OctaveEngine octave = new OctaveEngineFactory().getScriptEngine();
39 octave.eval("warning off");
40 octave.put("t1", Octave.scalar(0));
41 octave.put("t2", Octave.scalar(1));
42 octave.eval("result = lsode(@(x, t) sqrt(1 - t^2), 0, [t1 t2])(2);");
43 final OctaveDouble result = octave.get(OctaveDouble.class, "result");
44 octave.close();
45 final double integral = result.get(1);
46 assertEquals(Math.PI / 4, integral, 1e-5);
47
48 }
49
50
51
52
53
54 @Ignore
55 @Test public void testWithFunctionInVariable() {
56
57 System.out.println("1testWithFunctionInVariable");
58
59 final OctaveEngine octave = new OctaveEngineFactory().getScriptEngine();
60
61 octave.put("t1", Octave.scalar(0));
62 octave.put("t2", Octave.scalar(1));
63 System.out.println("2testWithFunctionInVariable");
64 if (octave.getVersion().startsWith("3.0.")) {
65 octave.put("fun", new OctaveString("sqrt(1-t**2)"));
66 } else {
67 octave.put("fun", new OctaveFunctionHandle("@(x, t) sqrt (1 - t ^ 2)"));
68 }
69 System.out.println("3testWithFunctionInVariable");
70 octave.eval("fun");
71 octave.eval("t1");
72 octave.eval("t2");
73 octave.eval("fun");
74
75 octave.eval("lsode(fun, 0, [t1 t2])");
76 octave.eval("result = lsode(fun, 0, [t1 t2])(2);");
77 System.out.println("3atestWithFunctionInVariable");
78 final OctaveDouble result = octave.get(OctaveDouble.class, "result");
79 System.out.println("4testWithFunctionInVariable");
80 octave.close();
81 System.out.println("5testWithFunctionInVariable");
82 final double integral = result.get(1);
83 assertEquals(Math.PI / 4, integral, 1e-5);
84
85 System.out.println("6testWithFunctionInVariable");
86 }
87
88 }