@Test public void testClone() { MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() .list() .layer(0, new RBM.Builder().build()) .layer(1, new OutputLayer.Builder().build()) .inputPreProcessor(1, new ReshapePreProcessor(new int[] {1, 2}, new int[] {3, 4})) .build(); MultiLayerConfiguration conf2 = conf.clone(); assertEquals(conf, conf2); assertNotSame(conf, conf2); assertNotSame(conf.getConfs(), conf2.getConfs()); for (int i = 0; i < conf.getConfs().size(); i++) { assertNotSame(conf.getConf(i), conf2.getConf(i)); } assertNotSame(conf.getInputPreProcessors(), conf2.getInputPreProcessors()); for (Integer layer : conf.getInputPreProcessors().keySet()) { assertNotSame(conf.getInputPreProcess(layer), conf2.getInputPreProcess(layer)); } }