1818
1919import static com .google .common .truth .Truth .assertThat ;
2020
21- import net . jqwik . api . Example ;
21+ import org . junit . Test ;
2222
2323public final class RangeSpecFunctionTest {
2424 private static final long KiB = 1024 ;
2525 private static final long MiB = 1024 * KiB ;
2626
2727 @ SuppressWarnings ("OptionalGetWithoutIsPresent" )
28- @ Example
28+ @ Test
2929 public void linearExponential_withMaxLimit () {
3030 RangeSpecFunction e =
3131 RangeSpecFunction .linearExponential ()
@@ -37,23 +37,85 @@ public void linearExponential_withMaxLimit() {
3737
3838 apply = e .apply (0 , apply );
3939 assertThat (apply ).isEqualTo (RangeSpec .of (0 , KiB ));
40- apply = e .apply (apply .limit ().getAsLong (), apply );
40+ apply = e .apply (apply .begin () + apply . limit ().getAsLong (), apply );
4141 assertThat (apply .limit ().getAsLong ()).isEqualTo (4 * KiB );
42- apply = e .apply (apply .limit ().getAsLong (), apply );
42+ apply = e .apply (apply .begin () + apply . limit ().getAsLong (), apply );
4343 assertThat (apply .limit ().getAsLong ()).isEqualTo (16 * KiB );
44- apply = e .apply (apply .limit ().getAsLong (), apply );
44+ apply = e .apply (apply .begin () + apply . limit ().getAsLong (), apply );
4545 assertThat (apply .limit ().getAsLong ()).isEqualTo (64 * KiB );
46- apply = e .apply (apply .limit ().getAsLong (), apply );
46+ apply = e .apply (apply .begin () + apply . limit ().getAsLong (), apply );
4747 assertThat (apply .limit ().getAsLong ()).isEqualTo (256 * KiB );
48- apply = e .apply (apply .limit ().getAsLong (), apply );
48+ apply = e .apply (apply .begin () + apply . limit ().getAsLong (), apply );
4949 assertThat (apply .limit ().getAsLong ()).isEqualTo (MiB );
50- apply = e .apply (apply .limit ().getAsLong (), apply );
50+ apply = e .apply (apply .begin () + apply . limit ().getAsLong (), apply );
5151 assertThat (apply .limit ().getAsLong ()).isEqualTo (4 * MiB );
52- apply = e .apply (apply .limit ().getAsLong (), apply );
52+ apply = e .apply (apply .begin () + apply . limit ().getAsLong (), apply );
5353 assertThat (apply .limit ().getAsLong ()).isEqualTo (16 * MiB );
54- apply = e .apply (apply .limit ().getAsLong (), apply );
54+ apply = e .apply (apply .begin () + apply . limit ().getAsLong (), apply );
5555 assertThat (apply .limit ().getAsLong ()).isEqualTo (64 * MiB );
56- apply = e .apply (apply .limit ().getAsLong (), apply );
56+ apply = e .apply (apply .begin () + apply . limit ().getAsLong (), apply );
5757 assertThat (apply .limit ().getAsLong ()).isEqualTo (64 * MiB );
5858 }
59+
60+ @ SuppressWarnings ("OptionalGetWithoutIsPresent" )
61+ @ Test
62+ public void linearExponential_resetsIfNotSequential_forward () {
63+ RangeSpecFunction e =
64+ RangeSpecFunction .linearExponential ().withMinRangeSize (KiB ).withRangeSizeScalar (4.0 );
65+
66+ RangeSpec apply = null ;
67+
68+ apply = e .apply (0 , apply );
69+ assertThat (apply ).isEqualTo (RangeSpec .of (0 , KiB ));
70+ apply = e .apply (apply .begin () + apply .limit ().getAsLong (), apply );
71+ assertThat (apply .limit ().getAsLong ()).isEqualTo (4 * KiB );
72+ apply = e .apply (apply .begin () + apply .limit ().getAsLong (), apply );
73+ assertThat (apply .limit ().getAsLong ()).isEqualTo (16 * KiB );
74+
75+ apply = e .apply (apply .begin () + apply .limit ().getAsLong () + 1 , apply );
76+ assertThat (apply .limit ().getAsLong ()).isEqualTo (KiB );
77+ apply = e .apply (apply .begin () + apply .limit ().getAsLong (), apply );
78+ assertThat (apply .limit ().getAsLong ()).isEqualTo (4 * KiB );
79+ }
80+
81+ @ SuppressWarnings ("OptionalGetWithoutIsPresent" )
82+ @ Test
83+ public void linearExponential_resetsIfNotSequential_backward () {
84+ RangeSpecFunction e =
85+ RangeSpecFunction .linearExponential ().withMinRangeSize (KiB ).withRangeSizeScalar (4.0 );
86+
87+ RangeSpec apply = null ;
88+
89+ apply = e .apply (0 , apply );
90+ assertThat (apply ).isEqualTo (RangeSpec .of (0 , KiB ));
91+ apply = e .apply (apply .begin () + apply .limit ().getAsLong (), apply );
92+ assertThat (apply .limit ().getAsLong ()).isEqualTo (4 * KiB );
93+ apply = e .apply (apply .begin () + apply .limit ().getAsLong (), apply );
94+ assertThat (apply .limit ().getAsLong ()).isEqualTo (16 * KiB );
95+
96+ apply = e .apply (apply .begin () + apply .limit ().getAsLong () - 1 , apply );
97+ assertThat (apply .limit ().getAsLong ()).isEqualTo (KiB );
98+ apply = e .apply (apply .begin () + apply .limit ().getAsLong (), apply );
99+ assertThat (apply .limit ().getAsLong ()).isEqualTo (4 * KiB );
100+ }
101+
102+ @ Test
103+ public void linearExponential_resetsIfNotSequential () {
104+ RangeSpecFunction e =
105+ RangeSpecFunction .linearExponential ().withMinRangeSize (1 ).withRangeSizeScalar (4.0 );
106+
107+ RangeSpec apply = null ;
108+
109+ apply = e .apply (0 , apply );
110+ assertThat (apply ).isEqualTo (RangeSpec .of (0 , 1 ));
111+ apply = e .apply (1 , apply );
112+ assertThat (apply ).isEqualTo (RangeSpec .of (1 , 4 ));
113+ apply = e .apply (5 , apply );
114+ assertThat (apply ).isEqualTo (RangeSpec .of (5 , 16 ));
115+
116+ apply = e .apply (4 , apply );
117+ assertThat (apply ).isEqualTo (RangeSpec .of (4 , 1 ));
118+ apply = e .apply (5 , apply );
119+ assertThat (apply ).isEqualTo (RangeSpec .of (5 , 4 ));
120+ }
59121}
0 commit comments