@Override public Integer calculate(String columnValue) { try { if (columnValue == null || columnValue.equalsIgnoreCase("NULL")) { return 0; } long key = Long.parseLong(columnValue); return calculate(key); } catch (NumberFormatException e) { throw new IllegalArgumentException("columnValue:" + columnValue + " Please eliminate any quote and non number within it.", e); } }
@Test public void testCalculate3() { PartitionByLong rule = new PartitionByLong(); rule.setPartitionCount("3"); rule.setPartitionLength("1"); rule.init(); String value = "0"; Assert.assertEquals(true, 0 == rule.calculate(value)); value = "1"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "2"; Assert.assertEquals(true, 2 == rule.calculate(value)); value = "3"; Assert.assertEquals(true, 0 == rule.calculate(value)); value = "-1"; Assert.assertEquals(true, 2 == rule.calculate(value)); value = "-2"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "-3"; Assert.assertEquals(true, 0 == rule.calculate(value)); }
@Test public void testCalculate1() { PartitionByLong rule = new PartitionByLong(); rule.setPartitionCount("2"); rule.setPartitionLength("512"); rule.init(); String value = "0"; Assert.assertEquals(true, 0 == rule.calculate(value)); value = "511"; Assert.assertEquals(true, 0 == rule.calculate(value)); value = "512"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "1023"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "1024"; Assert.assertEquals(true, 0 == rule.calculate(value)); }
@Test public void testCalculate2() { PartitionByLong rule = new PartitionByLong(); rule.setPartitionCount("2"); rule.setPartitionLength("1"); rule.init(); String value = "0"; Assert.assertEquals(true, 0 == rule.calculate(value)); value = "1"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "2"; Assert.assertEquals(true, 0 == rule.calculate(value)); value = "-1"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "-2"; Assert.assertEquals(true, 0 == rule.calculate(value)); }
@Test public void testCalculate16() { PartitionByLong rule = new PartitionByLong(); rule.setPartitionCount("8"); rule.setPartitionLength("360"); rule.init(); String value = "0"; Assert.assertEquals(true, 0 == rule.calculate(value)); value = "359"; Assert.assertEquals(true, 0 == rule.calculate(value)); value = "360"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "719"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "720"; Assert.assertEquals(true, 2 == rule.calculate(value)); value = "2879"; Assert.assertEquals(true, 7 == rule.calculate(value)); value = "2880"; Assert.assertEquals(true, 0 == rule.calculate(value)); }
@Test public void testCalculate4() { PartitionByLong rule = new PartitionByLong(); rule.setPartitionCount("1,2"); rule.setPartitionLength("1,2"); rule.init(); String value = "0"; Assert.assertEquals(true, 0 == rule.calculate(value)); value = "1"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "2"; Assert.assertEquals(true, 1 == rule.calculate(value)); value = "3"; Assert.assertEquals(true, 2 == rule.calculate(value)); value = "4"; Assert.assertEquals(true, 2 == rule.calculate(value)); value = "5"; Assert.assertEquals(true, 0 == rule.calculate(value)); }
@Test public void testCalculate6() { PartitionByLong rule = new PartitionByLong(); rule.setPartitionCount("3"); rule.setPartitionLength("1"); rule.init(); String value = ""; thrown.expect(IllegalArgumentException.class); rule.calculate(value); }