/** * Method to compute the data points. Split out so that errors it throws get reported. */ @BeforeClass public static void makeDataPoints() { KeyData[] data = new KeyData[10]; Generator<Long> intGen = longs(Integer.MIN_VALUE, Integer.MAX_VALUE); Generator<Long> longGen = longs(Integer.MAX_VALUE + 1L, Long.MAX_VALUE); for (int i = 0; i < 10; i++) { Generator<List<Long>> listGen; if (i % 2 == 0) { // generate ints listGen = sortedLists(uniqueValues(intGen), 25, 25); } else { // generate longs listGen = sortedLists(uniqueValues(longGen), 25, 25); } List<Long> nums = listGen.next(); data[i] = new KeyData(nums); } DATA_POINTS = data; }
@Test public void testAttributeOrder() { for (List<String> strings: someNonEmptyLists(uniqueValues(nonEmptyStrings(), 10))) { DataSetBuilder bld = new DataSetBuilder(nonEmptyStrings().next()); StaticDataSource train = new StaticDataSource("train"); bld.setTrain(train); StaticDataSource test = new StaticDataSource("test"); bld.setTest(test); for (String str: strings) { bld.setAttribute(str, nonEmptyStrings().next()); } DataSet ds = bld.build(); assertThat(ds.getAttributes().size(), equalTo(strings.size() + 1)); List<String> stringArray = new ArrayList<>(); stringArray.add("DataSet"); stringArray.addAll(strings); String[] strs = stringArray.toArray(new String[stringArray.size()]); assertThat(ds.getAttributes().keySet(), contains(strs)); } } }
/** * <p> * Create a generator that ensures unique values. * </p> * <p> * The actual values are created with an arbitrary generator. * </p> * <p> * Unique generator depends on the {@link Comparator} implementation to * decide if two instances are the same (i.e. when the comparator returns 0 * for {@link Comparator#compare(Object, Object)}). * </p> * * @param <T> * type of values returned by the generator * @param generator * used to create the raw values. This generator can create * duplicate values * @param comparator * that decides if two values are of the same equivalence class. * @return unique generator instance */ public static <T> StatefulGenerator<T> uniqueValues(Generator<T> generator, Comparator<? super T> comparator) { return uniqueValues(generator, comparator, DEFAULT_MAX_TRIES); }