View Javadoc
1   package eu.simuline.octave.io;
2   
3   import java.util.Map;
4   
5   import eu.simuline.octave.exception.OctaveParseException;
6   import eu.simuline.octave.type.Octave;
7   import eu.simuline.octave.type.OctaveDouble;
8   import eu.simuline.octave.type.OctaveObject;
9   
10  import static org.junit.Assert.assertEquals;
11  import static org.junit.Assert.assertTrue;
12  
13  import org.junit.Ignore;
14  import org.junit.Test;
15  
16  /**
17   * Test {@link OctaveIO}
18   */
19  public class TestOctaveIO {
20  
21      /**
22       * Test that {@link OctaveIO#readWithName(String)} works 
23       * and throws the expected on too much data.
24       */
25      @Test public void testReadWithName() {
26          // Data
27          final String varName = "x";
28          final OctaveDouble varValue = Octave.scalar(42);
29          final String input = "" + //
30                  "# name: x\n" + //
31                  "# type: scalar\n" + //
32                  "42\n" + //
33                  "";
34          final String extra = "" + //
35                  "extra 1\n" + //
36                  "extra 2\n" + //
37                  "";
38          // Test ok
39          final Map<String, OctaveObject> map = OctaveIO.readWithName(input);
40          assertTrue(map.containsKey(varName));
41          assertEquals(varValue, map.get(varName));
42          // Test error
43          try {
44              OctaveIO.readWithName(input + extra);
45          } catch (final OctaveParseException e) {
46              assertEquals("Too much data in input, " + 
47  			 "first extra line is 'extra 1'", e.getMessage());
48          }
49      }
50  
51  }