@Test
public void test_cancelPoint() {

    rec.setTotal(BigDecimal.valueOf(200L).setScale(DecimalUtils.SCALE_2))
            .setAvailable(BigDecimal.valueOf(80L).setScale(DecimalUtils.SCALE_2))
            .setCancelled(BigDecimal.valueOf(10L).setScale(DecimalUtils.SCALE_2))
            .setFrozen(BigDecimal.valueOf(10L).setScale(DecimalUtils.SCALE_2))
            .setTotalCost(BigDecimal.valueOf(100L).setScale(DecimalUtils.SCALE_2))
            .setFrozenCost(BigDecimal.valueOf(5L).setScale(DecimalUtils.SCALE_2));
    PointRecCalcResult result = calculator.cancelPoint(rec, BigDecimal.valueOf(20).setScale(DecimalUtils.SCALE_2));
    log.info("result = {}", result);
    Assertions.assertEquals(rec.getId(), result.getRec4Update().getId());
    Assertions.assertEquals(BigDecimal.valueOf(60L).setScale(DecimalUtils.SCALE_2),   // 80 - 20
            rec.getAvailable());
    Assertions.assertEquals(BigDecimal.valueOf(60L).setScale(DecimalUtils.SCALE_2),   // 80 - 20
            result.getRec4Update().getAvailable());
    Assertions.assertEquals(BigDecimal.valueOf(30L).setScale(DecimalUtils.SCALE_2), // 10 + 20
            rec.getCancelled());
    Assertions.assertEquals(BigDecimal.valueOf(30L).setScale(DecimalUtils.SCALE_2), result.getRec4Update().getCancelled());
    Assertions.assertEquals(BigDecimal.valueOf(10L).setScale(DecimalUtils.SCALE_2), rec.getUsedCost());
    Assertions.assertEquals(BigDecimal.valueOf(10L).setScale(DecimalUtils.SCALE_2), result.getRec4Update().getUsedCost());
    Assertions.assertEquals(BigDecimal.valueOf(10L).setScale(DecimalUtils.SCALE_2), result.getDeltaCost());
}