private void processSpec(String s, String expected) { // System.out.println(s); // System.out.println(); // System.out.println("=========="); try { Explosion explosion = new Explosion(); List<Explosion.Bird> birds = explosion.createRanges(new ByteArrayInputStream(s.getBytes("UTF-8"))); // for (int i = 0; i < birds.size(); i++) { // Explosion.Bird bird = birds.get(i); // System.out.println(bird); // } StringBuilder sb = new StringBuilder(); int[][] birdKills = explosion.process(birds); // System.out.println("----------"); // for (int i = 0; i < birds.size(); i++) { // Explosion.Bird bird = birds.get(i); // System.out.println(bird); // } for (int[] bk : birdKills) { sb.append(bk[0]).append(" ").append(bk[1]); sb.append("\n"); } Assert.assertEquals(expected, sb.toString().trim()); System.out.println(sb.toString()); // System.out.println("-------"); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } }