@Test
public void invokeParamRangeAndRange() {

    FunctionTestUtil.assertResult( startedByFunction.invoke(
            new RangeImpl( Range.RangeBoundary.CLOSED, "a", "f", Range.RangeBoundary.CLOSED ),
            new RangeImpl( Range.RangeBoundary.CLOSED, "a", "f", Range.RangeBoundary.CLOSED ) ),
            Boolean.TRUE );
    FunctionTestUtil.assertResult( startedByFunction.invoke(
            new RangeImpl( Range.RangeBoundary.CLOSED, "a", "k", Range.RangeBoundary.CLOSED ),
            new RangeImpl( Range.RangeBoundary.CLOSED, "a", "f", Range.RangeBoundary.CLOSED ) ),
            Boolean.TRUE );
    FunctionTestUtil.assertResult( startedByFunction.invoke(
            new RangeImpl( Range.RangeBoundary.CLOSED, "a", "f", Range.RangeBoundary.CLOSED ),
            new RangeImpl( Range.RangeBoundary.CLOSED, "f", "k", Range.RangeBoundary.CLOSED ) ),
            Boolean.FALSE );
    FunctionTestUtil.assertResult( startedByFunction.invoke(
            new RangeImpl( Range.RangeBoundary.CLOSED, "a", "k", Range.RangeBoundary.CLOSED ),
            new RangeImpl( Range.RangeBoundary.OPEN, "a", "f", Range.RangeBoundary.CLOSED ) ),
            Boolean.FALSE );
}