pub fn assert_empty(&self)
    where D: crate::ExchangeData+Hashable,
          R: crate::ExchangeData+Hashable + Semigroup,
          G::Timestamp: Lattice+Ord,
    {
        self.consolidate()
            .inspect(|x| panic!("Assertion failed: non-empty collection: {:?}", x));
    }
Assert if the collection is ever non-empty.

Because this is a dataflow fragment, the test is only applied as the computation is run. If the computation
is not run, or not run to completion, there may be un-exercised times at which the collection could be
non-empty. Typically, a timely dataflow computation runs to completion on drop, and so clean exit from a
program should indicate that this assertion never found cause to complain.

# Examples

```
use differential_dataflow::input::Input;

::timely::example(|scope| {
scope.new_collection_from(1 .. 10).1
.map(|x| x * 2)
.filter(|x| x % 2 == 1)
.assert_empty();
});
```
differential-dataflow/src/collection.rs