@Test public void testTurnFlagEncoding_withCosts() { FlagEncoder tmpEncoder = new CarFlagEncoder(8, 5, 127); EncodingManager em = new EncodingManager(tmpEncoder); long flags_r0 = tmpEncoder.getTurnFlags(true, 0); long flags_0 = tmpEncoder.getTurnFlags(false, 0); assertTrue(Double.isInfinite(tmpEncoder.getTurnCost(flags_r0))); assertEquals(0, tmpEncoder.getTurnCost(flags_0), 1e-1); assertTrue(tmpEncoder.isTurnRestricted(flags_r0)); assertFalse(tmpEncoder.isTurnRestricted(flags_0)); long flags_r20 = tmpEncoder.getTurnFlags(true, 0); long flags_20 = tmpEncoder.getTurnFlags(false, 20); assertTrue(Double.isInfinite(tmpEncoder.getTurnCost(flags_r20))); assertEquals(20, tmpEncoder.getTurnCost(flags_20), 1e-1); assertTrue(tmpEncoder.isTurnRestricted(flags_r20)); assertFalse(tmpEncoder.isTurnRestricted(flags_20)); long flags_r220 = tmpEncoder.getTurnFlags(true, 0); try { tmpEncoder.getTurnFlags(false, 220); assertTrue(false); } catch (Exception ex) { } assertTrue(Double.isInfinite(tmpEncoder.getTurnCost(flags_r220))); assertTrue(tmpEncoder.isTurnRestricted(flags_r220)); }
@Test public void testTurnFlagEncoding_noCosts() { FlagEncoder tmpEnc = new CarFlagEncoder(8, 5, 0); EncodingManager em = new EncodingManager(tmpEnc); long flags_r0 = tmpEnc.getTurnFlags(true, 0); long flags_0 = tmpEnc.getTurnFlags(false, 0); long flags_r20 = tmpEnc.getTurnFlags(true, 0); long flags_20 = tmpEnc.getTurnFlags(false, 20); assertEquals(0, tmpEnc.getTurnCost(flags_r0), 1e-1); assertEquals(0, tmpEnc.getTurnCost(flags_0), 1e-1); assertEquals(0, tmpEnc.getTurnCost(flags_r20), 1e-1); assertEquals(0, tmpEnc.getTurnCost(flags_20), 1e-1); assertFalse(tmpEnc.isTurnRestricted(flags_r0)); assertFalse(tmpEnc.isTurnRestricted(flags_0)); assertFalse(tmpEnc.isTurnRestricted(flags_r20)); assertFalse(tmpEnc.isTurnRestricted(flags_20)); }