public static Builder newBuilder() {
        return new Builder();
    }
@Test
    public void decreaseWithoutSmoothing() {
        VegasLimit limit = VegasLimit.newBuilder()
            .decrease(current -> current / 2)
            .initialLimit(100)
            .maxConcurrency(200)
            .build();
        
        // Pick up first min-rtt
        limit.onSample(0, TimeUnit.MILLISECONDS.toNanos(10), 100, false);
        Assert.assertEquals(100, limit.getLimit());
        
        // First decrease
        limit.onSample(0, TimeUnit.MILLISECONDS.toNanos(20), 100, false);
        Assert.assertEquals(50, limit.getLimit());

        // Second decrease
        limit.onSample(0, TimeUnit.MILLISECONDS.toNanos(20), 100, false);
        Assert.assertEquals(25, limit.getLimit());
    }