@Override
    public String doSharding(final Collection<String> availableTargetNames, final PreciseShardingValue<Comparable<?>> shardingValue) {
        ShardingSpherePreconditions.checkNotNull(shardingValue.getValue(), NullShardingValueException::new);
        return doSharding(availableTargetNames, Range.singleton(shardingValue.getValue())).stream().findFirst().orElse(null);
    }
@Test
    void assertRangeDoShardingByYearsInYearMonth() {
        Collection<String> availableTargetNames = new LinkedList<>();
        for (int i = 2016; i <= 2021; i++) {
            for (int j = 1; j <= 12; j++) {
                availableTargetNames.add(String.format("t_order_%04d%02d", i, j));
            }
        }
        Collection<String> actualAsYearMonth = createAlgorithm("yyyy-MM", "2016-01",
                "2021-12", "yyyyMM", 2, "Years")
                        .doSharding(availableTargetNames,
                                createShardingValue(YearMonth.of(2016, 1), YearMonth.of(2020, 1)));
        assertThat(actualAsYearMonth.size(), is(3));
    }