@Test(expected = IllegalArgumentException.class) public void testParseInverted() { PreferenceDomain.fromString("[2.5, -1]"); }
private LenskitConfiguration makeDataConfig(Context ctx) { LenskitConfiguration config = new LenskitConfiguration(); config.bind(DataAccessObject.class).toProvider(new DAOProvider()); String dspec = ctx.options.getString("domain"); if (dspec != null) { PreferenceDomain domain = PreferenceDomain.fromString(dspec); config.bind(PreferenceDomain.class).to(domain); } return config; }
@Test public void testClampValue() { PreferenceDomain d = PreferenceDomain.fromString("[1.0,5.0]"); for (Map<Long,Double> vec: someMaps(longs(), doubles(0.0, 8.0))) { Long2DoubleMap clamped = d.clampVector(vec); assertThat(clamped.keySet(), equalTo(vec.keySet())); for (Long k: vec.keySet()) { double v = vec.get(k); if (v < 1.0) { assertThat(clamped, hasEntry(k, 1.0)); } else if (v > 5.0) { assertThat(clamped, hasEntry(k, 5.0)); } else { assertThat(clamped, hasEntry(k, v)); } } } } }
@Test public void testParseContinuous() { PreferenceDomain d = PreferenceDomain.fromString("[1.0,3.0]"); assertThat(d.getMinimum(), closeTo(1.0, 1.0e-6)); assertThat(d.getMaximum(), closeTo(3.0, 1.0e-6)); assertFalse(d.hasPrecision()); assertThat(d.getPrecision(), equalTo(0.0)); }
@Test public void testParseInt() { PreferenceDomain d = PreferenceDomain.fromString("[ 1 , 5 ] / 1"); assertThat(d.getMinimum(), closeTo(1.0, 1.0e-6)); assertThat(d.getMaximum(), closeTo(5.0, 1.0e-6)); assertTrue(d.hasPrecision()); assertThat(d.getPrecision(), equalTo(1.0)); }
@Test public void testParseDiscrete() { PreferenceDomain d = PreferenceDomain.fromString("[1.0,5.0]/0.5"); assertThat(d.getMinimum(), closeTo(1.0, 1.0e-6)); assertThat(d.getMaximum(), closeTo(5.0, 1.0e-6)); assertTrue(d.hasPrecision()); assertThat(d.getPrecision(), equalTo(0.5)); }