@@ -174,11 +174,77 @@ public void testRandomUniqueNormalUsageAlwayMoreThanOne() {
174
174
assertThat (randomUnique (() -> randomAlphaOfLengthBetween (1 , 20 ), 10 ), hasSize (greaterThan (0 )));
175
175
}
176
176
177
+ public void testRandomSubsetOfWithVarargs () {
178
+ List <Integer > randomList = randomList (10 , () -> randomIntBetween (-100 , 100 ));
179
+
180
+ // 0 <= subsetSize <= listSize
181
+ int randomSubsetSize = randomInt (randomList .size ());
182
+
183
+ // Uses the spread syntax to pass the list as an array of values (matching the var args parameter definition)
184
+ List <Integer > result = ESTestCase .randomSubsetOf (randomSubsetSize , randomList .toArray (new Integer [0 ]));
185
+ assertEquals (randomSubsetSize , result .size ());
186
+ assertTrue (randomList .containsAll (result ));
187
+ }
188
+
189
+ public void testRandomSubsetOfWithVarargsAndSizeTooLarge () {
190
+ List <Integer > randomList = randomList (10 , () -> randomIntBetween (-100 , 100 ));
191
+
192
+ // listSize < subsetSize
193
+ int randomSubsetSize = randomIntBetween (randomList .size () + 1 , 20 );
194
+
195
+ assertThrows (IllegalArgumentException .class , () -> ESTestCase .randomSubsetOf (randomSubsetSize , randomList .toArray (new Integer [0 ])));
196
+ }
197
+
198
+ public void testRandomSubsetOfWithVarargsAndNegativeSubsetSize () {
199
+ List <Integer > randomList = randomList (10 , () -> randomIntBetween (-100 , 100 ));
200
+ int randomNegativeSubsetSize = -1 * randomIntBetween (1 , 10 );
201
+
202
+ assertThrows (IllegalArgumentException .class , () -> ESTestCase .randomSubsetOf (randomNegativeSubsetSize , randomList ));
203
+ }
204
+
205
+ public void testRandomSubsetOfWithCollection () {
206
+ List <Integer > randomList = randomList (10 , () -> randomIntBetween (-100 , 100 ));
207
+ List <Integer > result = ESTestCase .randomSubsetOf (randomList );
208
+ assertTrue (result .size () >= 0 && result .size () <= randomList .size ());
209
+ assertTrue (randomList .containsAll (result ));
210
+ }
211
+
212
+ public void testRandomNonEmptySubsetOf () {
213
+ List <Integer > randomList = randomList (1 , 10 , () -> randomIntBetween (-100 , 100 ));
214
+ List <Integer > result = ESTestCase .randomNonEmptySubsetOf (randomList );
215
+ assertTrue (result .size () >= 1 && result .size () <= randomList .size ());
216
+ assertTrue (randomList .containsAll (result ));
217
+ }
218
+
177
219
public void testRandomNonEmptySubsetOfThrowsOnEmptyCollection () {
178
220
final var ex = expectThrows (IllegalArgumentException .class , () -> randomNonEmptySubsetOf (Collections .emptySet ()));
179
221
assertThat (ex .getMessage (), equalTo ("Can't pick non-empty subset of an empty collection" ));
180
222
}
181
223
224
+ public void testRandomSubsetOfWithCollectionAndSizeTooLarge () {
225
+ List <Integer > randomList = randomList (10 , () -> randomIntBetween (-100 , 100 ));
226
+
227
+ // listSize < subsetSize
228
+ int randomSubsetSize = randomIntBetween (randomList .size () + 1 , 20 );
229
+
230
+ assertThrows (IllegalArgumentException .class , () -> ESTestCase .randomSubsetOf (randomSubsetSize , randomList ));
231
+ }
232
+
233
+ public void testRandomSubsetOfWithCollectionAndNegativeSubsetSize () {
234
+ List <Integer > randomList = randomList (10 , () -> randomIntBetween (-100 , 100 ));
235
+ int randomNegativeSubsetSize = -1 * randomIntBetween (1 , 10 );
236
+
237
+ assertThrows (IllegalArgumentException .class , () -> ESTestCase .randomSubsetOf (randomNegativeSubsetSize , randomList ));
238
+ }
239
+
240
+ public void testShuffledList () {
241
+ List <Integer > randomList = randomList (100 , () -> randomIntBetween (-100 , 100 ));
242
+ List <Integer > result = ESTestCase .shuffledList (randomList );
243
+ assertEquals (randomList .size (), result .size ());
244
+ assertTrue (randomList .containsAll (result ));
245
+ assertTrue (result .containsAll (randomList ));
246
+ }
247
+
182
248
public void testRandomNonNegativeLong () {
183
249
assertThat (randomNonNegativeLong (), greaterThanOrEqualTo (0L ));
184
250
}
0 commit comments