@Override
  public Ring<T> createRing(Map<T, Integer> pointsMap) {
    return _ringFactory.createRing(pointsMap);
  }
@Test(groups = { "small", "back-end" })
  public void testPointsCleanUp()
          throws URISyntaxException
  {
    Map<String, Integer> pointsMp = buildPointsMap(6);

    PointBasedConsistentHashRingFactory<String> ringFactory = new PointBasedConsistentHashRingFactory<>(new DegraderLoadBalancerStrategyConfig(1L));
    Ring<String>  ring = ringFactory.createRing(pointsMp);
    assertNotNull(ring.get(1000));

    pointsMp.remove("http://test.linkedin.com:10001");
    pointsMp.remove("http://test.linkedin.com:10003");

    ring = ringFactory.createRing(pointsMp);
    assertNotNull(ring.get(1000));
    // factory should keep all the points -- the default MinUnusedEntry = 3
    Map<String, List<Point<String>>> pointsMap = ringFactory.getPointsMap();
    assertEquals(pointsMap.size(), 6);

    pointsMp.remove("http://test.linkedin.com:10004");
    pointsMp.remove("http://test.linkedin.com:10005");
    ring = ringFactory.createRing(pointsMp);
    assertNotNull(ring.get(1000));

    // factory should clean up and build new points because unused entry == 3
    pointsMap = ringFactory.getPointsMap();
    assertEquals(pointsMap.size(), 2);
  }