@Test
	public final void testIntersectCorners() {
		
		SpaceRegion sr1 = new SpaceRegion("sr1");
		SpaceRegion sr2 = new SpaceRegion( sr1, "sr1");
		
		Assert.assertTrue( sr1.intersects( sr1 ) );
		Assert.assertTrue( sr1.intersects( sr2 ) );
		
		for ( float x = -1.0f; x <= 1.0f; x += 0.1f ) {
			
			sr2.localPosition.x = x;
			
			for ( float y = -1.0f; y <= 1.0f; y += 0.1f ) {
				
				sr2.localPosition.y = y;
				
				for ( float z = -1.0f; z <= 1.0f; z += 0.1f ) {
					
					sr2.localPosition.z = z;

					for ( float dx = 1.0f; dx <= 2.0f; dx += 0.1f ) {
						
						sr2.size.x = dx;
						
						for ( float dy = 1.0f; dy <= 2.0f; dy += 0.1f ) {
							
							sr2.size.y = dy;
							
							for ( float dz = 1.0f; dz <= 2.0f; dz += 0.1f ) {
								
								sr2.size.z = dz;
								
								Assert.assertTrue( sr1.intersects( sr2 ) );		
							}
						}
					}
				}
			}
		}
		
		sr1.localPosition.set( 0.0f, 0.0f, 0.0f );
		sr2.localPosition.set( 0.0f, 0.0f, 0.0f );
		

		
		
		sr2.localPosition.set( 0.3f, -1.0f, -1.0f );
		sr2.size.set( 0.3f, 2.0f, 2.0f );
		
		Assert.assertTrue( sr1.intersects( sr2 ) );
		Assert.assertTrue( sr2.intersects( sr1 ) );
		
		sr2.localPosition.set( -1.0f, 0.3f, -1.0f );		
		sr2.size.set( 2.0f, 0.3f, 2.0f );

		Assert.assertTrue( sr1.intersects( sr2 ) );
		Assert.assertTrue( sr2.intersects( sr1 ) );
		
		sr2.localPosition.set( -1.0f, -1.0f, 0.3f );		
		sr2.size.set( 2.0f, 2.0f, 0.3f );

		Assert.assertTrue( sr1.intersects( sr2 ) );
		Assert.assertTrue( sr2.intersects( sr1 ) );
		

		sr2.localPosition.set( 0.3f, 0.3f, 0.3f );		
		sr2.size.set( 0.3f, 0.3f, 0.3f );

		Assert.assertTrue( sr1.intersects( sr2 ) );
		Assert.assertTrue( sr2.intersects( sr1 ) );

		
		sr2.localPosition.set( 0.3f, -2.0f, 0.3f );		
		sr2.size.set( 0.3f, 2.0f, 0.3f );

		Assert.assertTrue( sr1.intersects( sr2 ) );
		Assert.assertFalse( sr1.intersects( null ) );
	}