Scenario { static Scenario create( Iterable<? extends TimedEvent> events, Iterable<? extends ModelBuilder<?, ?>> builders, TimeWindow tw, StopCondition stopCondition, ProblemClass pc, String id) { return new AutoValue_Scenario( ImmutableList.<TimedEvent>copyOf(events), ImmutableSet.<ModelBuilder<?, ?>>copyOf(builders), tw, stopCondition, pc, id); } protected  Scenario(); abstract ImmutableList<TimedEvent> getEvents(); Queue<TimedEvent> asQueue(); abstract ImmutableSet<ModelBuilder<?, ?>> getModelBuilders(); abstract TimeWindow getTimeWindow(); abstract StopCondition getStopCondition(); abstract ProblemClass getProblemClass(); abstract String getProblemInstanceId(); @Override abstract boolean equals(@Nullable Object other); @Override abstract int hashCode(); static Builder builder(); static Builder builder(Scenario scenario); static Builder builder(ProblemClass problemClass); static Builder builder(AbstractBuilder<?> base,
      ProblemClass problemClass); static final ProblemClass DEFAULT_PROBLEM_CLASS; }
@Test public void testSimpleProblemClass() { final ProblemClass pc = SimpleProblemClass.create("hello world"); assertEquals("hello world", pc.getId()); assertTrue(pc.toString().contains("hello world")); }
@Test public void timedEventEquals() { final TimedEvent a10 = EventA.create(10); final TimedEvent b10 = EventB.create(10); assertNotEquals(AddObjectEvent.create(10, new Point(10, 0)), a10); assertNotEquals(a10, null); assertNotEquals(a10, b10); assertEquals(b10, EventB.create(10)); }