public static void testAccuracy() {
    double[][][][] data = {
      {
        {
          {1.0, 2.0, 3.0},
          {4.0, 5.0, 6.0},
          {7.0, 8.0, 9.0}
        }
      }
    };
    double[] flat = ArrayUtil.flattenDoubleArray(data);
    int[] shape = {1, 1, 3, 3};
    INDArray input = Nd4j.create(flat, shape, 'c');

    TestCase testCase = new TestCase(1, 1, 2, 2, 1, 1, 0, 0, 3, 3);

    ConvolutionLayer convolutionLayerBuilder =
        new ConvolutionLayer.Builder(testCase.kW, testCase.kH)
            .nIn(testCase.nInputPlane)
            .stride(testCase.dW, testCase.dH)
            .padding(testCase.padW, testCase.padH)
            .nOut(testCase.nOutputPlane)
            .build();

    MultiLayerConfiguration.Builder builder =
        new NeuralNetConfiguration.Builder().list().layer(0, convolutionLayerBuilder);

    MultiLayerConfiguration conf = builder.build();
    MultiLayerNetwork model = new MultiLayerNetwork(conf);
    model.init();
    model.setInput(input);
    model.getLayer(0).setInput(input);
    org.deeplearning4j.nn.layers.convolution.ConvolutionLayer convolutionLayer =
        (org.deeplearning4j.nn.layers.convolution.ConvolutionLayer) model.getLayer(0);

    System.out.println(convolutionLayer.params());
    System.out.println(convolutionLayer.preOutput(false));
  }