@@ -0,0 +1,2171 @@
+package info.limpet.data2;%0A%0Aimport static javax.measure.unit.SI.METRE;%0Aimport static javax.measure.unit.SI.SECOND;%0A%0Aimport java.util.ArrayList;%0Aimport java.util.List;%0A%0Aimport info.limpet.IStoreItem;%0Aimport info.limpet.impl.NumberDocument;%0Aimport info.limpet.impl.NumberDocumentBuilder;%0Aimport info.limpet.impl.SampleData;%0Aimport info.limpet.operations.CollectionComplianceTests;%0A%0Aimport javax.measure.quantity.Velocity;%0A%0Aimport junit.framework.TestCase;%0A%0Apublic class TestCollectionCompliance extends TestCase%0A%7B%0A  %0A  private final CollectionComplianceTests aTests =%0A      new CollectionComplianceTests();%0A  %0A  public void testBoundingRange()%0A  %7B%0A    NumberDocumentBuilder speed1B =%0A        new NumberDocumentBuilder(%22Speeds%22, METRE.divide(SECOND).asType(%0A            Velocity.class), null, SampleData.MILLIS);%0A%0A    speed1B.add(100, 10d);%0A    speed1B.add(200, 20d);%0A    speed1B.add(300, 30d);%0A    speed1B.add(400, 40d);%0A%0A    NumberDocument speed1 = (NumberDocument) speed1B.toDocument();%0A    %0A    NumberDocumentBuilder speed2B =%0A        new NumberDocumentBuilder(%22Speeds%22, METRE.divide(SECOND).asType(%0A            Velocity.class), null, SampleData.MILLIS);%0A%0A    speed2B.add(450, 10d);%0A    speed2B.add(500, 20d);%0A    speed2B.add(700, 30d);%0A    speed2B.add(900, 40d);%0A%0A    NumberDocument speed2 = (NumberDocument) speed2B.toDocument();%0A    %0A%0A    NumberDocumentBuilder speed3B =%0A        new NumberDocumentBuilder(%22Speeds%22, METRE.divide(SECOND).asType(%0A            Velocity.class), null, SampleData.MILLIS);%0A%0A    speed3B.add(120, 10d);%0A    speed3B.add(130, 20d);%0A    speed3B.add(140, 30d);%0A    speed3B.add(150, 40d);%0A%0A    NumberDocument speed3 = (NumberDocument) speed3B.toDocument();%0A    %0A    List%3CIStoreItem%3E sel = new ArrayList%3CIStoreItem%3E();%0A    %0A    sel.add(speed1);%0A    sel.add(speed2);%0A    %0A    assertNull(%22no overlap%22, aTests.getBoundingRange(sel));%0A    %0A    sel.clear();%0A    %0A    sel.add(speed1);%0A    sel.add(speed3);%0A    %0A    assertNotNull(%22no overlap%22, aTests.getBoundingRange(sel));%0A    %0A    sel.clear();%0A    %0A    sel.add(speed1);%0A    sel.add(speed2);%0A    sel.add(speed3);%0A    %0A    assertNull(%22no overlap%22, aTests.getBoundingRange(sel));%0A    %0A    %0A    %0A    %0A  %7D%0A%7D%0A

introduce new test class, to work on temporal bounds