@Test public void testMatrix() { final IREXP testREXP = PlainJavaConnectionTestSuiteContext.getInstance() .acquireRConnection() .eval( new StringBuffer() .append("try(") .append("summary(lm(dist~speed,data=cars))$coefficients") .append(")") .toString()); Assert.assertEquals("textREXP is not a matrix", IREXP.XT_MATRIX, testREXP.getType()); final IRMatrix matrix = testREXP.asMatrix(); Assert.assertNotNull("conversion asMatrx failed!", matrix); Assert.assertEquals("not 2 rows", 2, matrix.getRows()); Assert.assertEquals("not 4 columns", 4, matrix.getColumns()); Assert.assertEquals("row #1 name wrong", "(Intercept)", matrix.getRowNameAt(0)); Assert.assertEquals("row #2 name wrong", "speed", matrix.getRowNameAt(1)); Assert.assertEquals("column #1 name wrong", "Estimate", matrix.getColumnNameAt(0)); Assert.assertEquals("column #2 name wrong", "Std. Error", matrix.getColumnNameAt(1)); Assert.assertEquals("column #3 name wrong", "t value", matrix.getColumnNameAt(2)); Assert.assertEquals("column #4 name wrong", "Pr(>|t|)", matrix.getColumnNameAt(3)); // just once the values for (int row = 0; row < matrix.getRows(); row++) { for (int col = 0; col < matrix.getColumns(); col++) { Assert.assertEquals( "coeff type is wrong @(row=" + row + ",col=" + col + ")", matrix.getValueAt(row, col).getType(), IREXP.XT_DOUBLE); } } Assert.assertEquals( "coeff value is wrong @(row=0,col=0)", -17.579095, matrix.getValueAt(0, 0).asDouble(), PlainJavaConnectionTestSuiteContext.EPSILON); Assert.assertEquals( "coeff value is wrong @(row=0,col=1)", 6.7584402, matrix.getValueAt(0, 1).asDouble(), PlainJavaConnectionTestSuiteContext.EPSILON); Assert.assertEquals( "coeff value is wrong @(row=0,col=2)", -2.601058, matrix.getValueAt(0, 2).asDouble(), PlainJavaConnectionTestSuiteContext.EPSILON); Assert.assertEquals( "coeff value is wrong @(row=0,col=3)", 1.231882e-02, matrix.getValueAt(0, 3).asDouble(), PlainJavaConnectionTestSuiteContext.EPSILON); Assert.assertEquals( "coeff value is wrong @(row=1,col=0)", 3.932409, matrix.getValueAt(1, 0).asDouble(), PlainJavaConnectionTestSuiteContext.EPSILON); Assert.assertEquals( "coeff value is wrong @(row=1,col=1)", 0.4155128, matrix.getValueAt(1, 1).asDouble(), PlainJavaConnectionTestSuiteContext.EPSILON); Assert.assertEquals( "coeff value is wrong @(row=1,col=2)", 9.463990, matrix.getValueAt(1, 2).asDouble(), PlainJavaConnectionTestSuiteContext.EPSILON); Assert.assertEquals( "coeff value is wrong @(row=1,col=3)", 1.489836e-12, matrix.getValueAt(1, 3).asDouble(), PlainJavaConnectionTestSuiteContext.EPSILON); }