View Javadoc

1   package de.bwaldvogel.liblinear;
2   
3   import static org.fest.assertions.Assertions.assertThat;
4   import static org.mockito.Mockito.mock;
5   
6   import java.io.BufferedReader;
7   import java.io.PrintStream;
8   import java.io.StringReader;
9   import java.io.StringWriter;
10  import java.io.Writer;
11  
12  import org.junit.Before;
13  import org.junit.Test;
14  
15  
16  public class PredictTest {
17  
18      private Model         testModel = LinearTest.createRandomModel();
19      private StringBuilder sb        = new StringBuilder();
20      private Writer        writer    = new StringWriter();
21  
22      @Before
23      public void setUp() {
24          System.setOut(mock(PrintStream.class)); // dev/null
25          assertThat(testModel.getNrClass()).isGreaterThanOrEqualTo(2);
26          assertThat(testModel.getNrFeature()).isGreaterThanOrEqualTo(10);
27      }
28  
29      private void testWithLines(StringBuilder sb) throws Exception {
30          BufferedReader reader = new BufferedReader(new StringReader(sb.toString()));
31  
32          Predict.doPredict(reader, writer, testModel);
33      }
34  
35      @Test(expected = RuntimeException.class)
36      public void testDoPredictCorruptLine() throws Exception {
37          sb.append(testModel.label[0]).append(" abc").append("\n");
38          testWithLines(sb);
39      }
40  
41      @Test(expected = RuntimeException.class)
42      public void testDoPredictCorruptLine2() throws Exception {
43          sb.append(testModel.label[0]).append(" 1:").append("\n");
44          testWithLines(sb);
45      }
46  
47      @Test
48      public void testDoPredict() throws Exception {
49          sb.append(testModel.label[0]).append(" 1:0.32393").append("\n");
50          sb.append(testModel.label[1]).append(" 2:-71.555   9:88223").append("\n");
51          testWithLines(sb);
52          assertThat(writer.toString()).isNotEmpty();
53      }
54  }