ReorderDecorator extends
    EventSinkDecorator<S> { public static SinkDecoBuilder builder() { return new SinkDecoBuilder() { @Override public EventSinkDecorator<EventSink> build(Context context, String... argv) { Preconditions.checkArgument(argv.length == 2, "usage: reorder(delayProb, undelayProb)"); double yank = Double.parseDouble(argv[0]); double spew = Double.parseDouble(argv[1]); return new ReorderDecorator<EventSink>(null, yank, spew, Clock .unixTime()); } }; } ReorderDecorator(S s, double yank, double spew, long seed); void append(Event e); void close(); static SinkDecoBuilder builder();  }
@Test public void testBuilder() { ReorderDecorator.builder().build(new Context(), "0.0", "0.0"); }
@Test(expected = IllegalArgumentException.class) public void testBadBuilder1() { ReorderDecorator.builder().build(new Context(), "-1.0", "0.0"); }
@Test(expected = IllegalArgumentException.class) public void testBadBuilder2() { ReorderDecorator.builder().build(new Context(), "2.0", "0.0"); }
@Test(expected = IllegalArgumentException.class) public void testBadBuilder3() { ReorderDecorator.builder().build(new Context(), "0.0", "-1.0"); }
@Test(expected = IllegalArgumentException.class) public void testBadBuilder4() { ReorderDecorator.builder().build(new Context(), "0.0", "2.0"); }