Subsampling2DConnection c = new Subsampling2DConnection(new Layer(), new Layer(), 4, 4, 2, 2, 2);
Matrix i1 = new Matrix(new float[] { 0.5f, 1, 1, 2, 1.5f, 3, 2, 4, 2.5f, 5, 3, 6, 3.5f, 7, 4f, 8, 4.5f, 9, 5f, 10, 5.5f, 11, 6f, 12, 6.5f, 13, 7f, 14, 8f, 16, 7.5f, 15, 8.5f, 17, 9f, 18, 9.5f, 19, 10f, 20, 10.5f, 21, 11f, 22, 11.5f, 23, 12f, 24, 12.5f, 25, 13f, 26, 13.5f, 27, 14f, 28, 14.5f, 29, 15f, 30, 16f, 32, 15.5f, 31 }, 2);
List<Connections> connections = new ArrayList<Connections>();
connections.add(c);
ConnectionCalculator calc = new AparapiMaxPooling2D();
Matrix o = new Matrix(8, 2);
ValuesProvider vp = new ValuesProvider();
vp.addValues(c.getInputLayer(), i1);
vp.addValues(c.getOutputLayer(), o);
calc.calculate(connections, vp, c.getOutputLayer());
assertEquals(3, o.get(0, 0), 0);
assertEquals(4, o.get(1, 0), 0);
assertEquals(7, o.get(2, 0), 0);
assertEquals(8, o.get(3, 0), 0);