package de.axone.data;
import static org.testng.Assert.*;
import org.testng.annotations.Test;
@Test( groups="tools.range" )
public class IntegerRangeTest {
public void testRanges(){
IntegerRange r00 = new IntegerRange( null, null );
IntegerRange rx0 = new IntegerRange( null, 0 );
IntegerRange r0x = new IntegerRange( 0, null );
IntegerRange rx1 = new IntegerRange( null, 1 );
IntegerRange r1x = new IntegerRange( 1, null );
IntegerRange r01 = new IntegerRange( 0, 1 );
IntegerRange r03 = new IntegerRange( 0, 3 );
IntegerRange r12 = new IntegerRange( 0, 2 );
IntegerRange r23 = new IntegerRange( 2, 3 );
// -- Touches
assertTrue( rx0.touches( r0x ) );
assertFalse( rx0.overlaps( r0x ) );
assertTrue( rx1.touches( r1x ) );
assertFalse( rx1.overlaps( r1x ) );
// -- Overlaps
assertTrue( rx1.touches( r0x ) );
assertTrue( rx1.overlaps( r0x ) );
// -- Misses
assertFalse( rx0.touches( r1x ) );
assertFalse( rx0.overlaps( r1x ) );
// -- Overlaps
assertTrue( r12.touches( r03 ) );
assertTrue( r12.overlaps( r03 ) );
assertTrue( r01.touches( r03 ) );
assertTrue( r01.overlaps( r03 ) );
// -- Misses
assertFalse( r01.touches( r23 ) );
assertFalse( r01.overlaps( r23 ) );
// -- No range matches all
assertTrue( r00.touches( rx0 ) );
assertTrue( r00.touches( r0x ) );
assertTrue( r00.touches( rx1 ) );
assertTrue( r00.touches( r1x ) );
assertTrue( r00.touches( r01 ) );
assertTrue( r00.touches( r03 ) );
assertTrue( r00.touches( r12 ) );
assertTrue( r00.touches( r23 ) );
assertTrue( r00.overlaps( rx0 ) );
assertTrue( r00.overlaps( r0x ) );
assertTrue( r00.overlaps( rx1 ) );
assertTrue( r00.overlaps( r1x ) );
assertTrue( r00.overlaps( r01 ) );
assertTrue( r00.overlaps( r03 ) );
assertTrue( r00.overlaps( r12 ) );
assertTrue( r00.overlaps( r23 ) );
}
}