Program: 168434
Project: 168434
Buggy source:
@Test public void testPathRoutings(){
  PatternPathRouterWithGroups<String> pathRouter=PatternPathRouterWithGroups.create(25);
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  List<PatternPathRouterWithGroups.RoutableDestination<String>> routes;
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertTrue(routes.isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertTrue(routes.isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertEquals(1,routes.get(0).getGroupNameValues().size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getGroupNameValues().get("String_Node_Str"));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertTrue(routes.isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  Assert.assertTrue(routes.get(1).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of()),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(3,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination(),routes.get(2).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of()),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of("String_Node_Str","String_Node_Str")),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertEquals(ImmutableMap.of("String_Node_Str","String_Node_Str"),routes.get(0).getGroupNameValues());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of("String_Node_Str","String_Node_Str")),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of("String_Node_Str","String_Node_Str")),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertEquals(ImmutableMap.of("String_Node_Str","String_Node_Str"),routes.get(0).getGroupNameValues());
}

Fixed version (ground truth):
@Test public void testPathRoutings(){
  PatternPathRouterWithGroups<String> pathRouter=PatternPathRouterWithGroups.create(25);
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  pathRouter.add("String_Node_Str","String_Node_Str");
  List<PatternPathRouterWithGroups.RoutableDestination<String>> routes;
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertTrue(routes.isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertTrue(routes.isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertEquals(1,routes.get(0).getGroupNameValues().size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getGroupNameValues().get("String_Node_Str"));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertTrue(routes.isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  Assert.assertTrue(routes.get(1).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertTrue(routes.get(0).getGroupNameValues().isEmpty());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of()),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(3,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination(),routes.get(2).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of()),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of("String_Node_Str","String_Node_Str")),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertEquals(ImmutableMap.of("String_Node_Str","String_Node_Str"),routes.get(0).getGroupNameValues());
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of("String_Node_Str","String_Node_Str")),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(2,routes.size());
  Assert.assertEquals(ImmutableSet.of("String_Node_Str","String_Node_Str"),ImmutableSet.of(routes.get(0).getDestination(),routes.get(1).getDestination()));
  Assert.assertEquals(ImmutableSet.of(ImmutableMap.of("String_Node_Str","String_Node_Str"),ImmutableMap.<String,String>of("String_Node_Str","String_Node_Str")),ImmutableSet.of(routes.get(0).getGroupNameValues(),routes.get(1).getGroupNameValues()));
  routes=pathRouter.getDestinations("String_Node_Str");
  Assert.assertEquals(1,routes.size());
  Assert.assertEquals("String_Node_Str",routes.get(0).getDestination());
  Assert.assertEquals(ImmutableMap.of("String_Node_Str","String_Node_Str"),routes.get(0).getGroupNameValues());
}