10b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti/* 20b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * Copyright (C) 2007-2010 Júlio Vilmar Gesser. 30b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * Copyright (C) 2011, 2013-2016 The JavaParser Team. 40b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * 50b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * This file is part of JavaParser. 60b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * 70b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * JavaParser can be used either under the terms of 80b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * a) the GNU Lesser General Public License as published by 90b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * the Free Software Foundation, either version 3 of the License, or 100b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * (at your option) any later version. 110b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * b) the terms of the Apache License 120b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * 130b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * You should have received a copy of both licenses in LICENCE.LGPL and 140b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * LICENCE.APACHE. Please refer to those files for details. 150b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * 160b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * JavaParser is distributed in the hope that it will be useful, 170b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * but WITHOUT ANY WARRANTY; without even the implied warranty of 180b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 190b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti * GNU Lesser General Public License for more details. 200b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti */ 210b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 220b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassettipackage com.github.javaparser; 230b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 240b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassettiimport org.junit.Test; 250b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 260b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassettiimport java.io.IOException; 270b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 280b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassettiimport static org.junit.Assert.assertEquals; 290b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 300b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassettipublic class RangeTest { 310b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 320b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti @Test 330b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti public void aRangeContainsItself() throws IOException { 340b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r = Range.range(1, 1, 3, 10); 350b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(true, r.contains(r)); 360b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti } 370b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 380b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti @Test 390b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti public void aRangeDoesNotStrictlyContainsItself() throws IOException { 400b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r = Range.range(1, 1, 3, 10); 410b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r.strictlyContains(r)); 420b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti } 430b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 440b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti @Test 450b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti public void overlappingButNotContainedRangesAreNotOnContains() throws IOException { 460b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r1 = Range.range(1, 1, 3, 10); 470b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r2 = Range.range(2, 1, 7, 10); 480b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r1.contains(r2)); 490b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r2.contains(r1)); 500b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti } 510b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 520b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti @Test 530b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti public void overlappingButNotContainedRangesAreNotOnStrictlyContains() throws IOException { 540b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r1 = Range.range(1, 1, 3, 10); 550b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r2 = Range.range(2, 1, 7, 10); 560b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r1.strictlyContains(r2)); 570b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r2.strictlyContains(r1)); 580b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti } 590b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 600b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti @Test 610b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti public void unrelatedRangesAreNotOnContains() throws IOException { 620b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r1 = Range.range(1, 1, 3, 10); 630b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r2 = Range.range(5, 1, 7, 10); 640b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r1.contains(r2)); 650b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r2.contains(r1)); 660b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti } 670b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 680b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti @Test 690b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti public void unrelatedRangesAreNotOnStrictlyContains() throws IOException { 700b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r1 = Range.range(1, 1, 3, 10); 710b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r2 = Range.range(5, 1, 7, 10); 720b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r1.strictlyContains(r2)); 730b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r2.strictlyContains(r1)); 740b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti } 750b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 760b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti @Test 770b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti public void strictlyContainedRangesOnContains() throws IOException { 780b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r1 = Range.range(1, 1, 3, 10); 790b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r2 = Range.range(2, 1, 3, 4); 800b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(true, r1.contains(r2)); 810b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r2.contains(r1)); 820b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti } 830b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 840b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti @Test 850b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti public void strictlyContainedRangesOnStrictlyContains() throws IOException { 860b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r1 = Range.range(1, 1, 3, 10); 870b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti Range r2 = Range.range(2, 1, 3, 4); 880b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(true, r1.strictlyContains(r2)); 890b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti assertEquals(false, r2.strictlyContains(r1)); 900b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti } 910b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti 92c4a298db050ce382d4d93ea51c07c58e97f832d8Federico Tomassetti @Test 93c4a298db050ce382d4d93ea51c07c58e97f832d8Federico Tomassetti public void containsConsiderLines() { 94c4a298db050ce382d4d93ea51c07c58e97f832d8Federico Tomassetti Range r1 = Range.range(22, 9, 22, 29); 95c4a298db050ce382d4d93ea51c07c58e97f832d8Federico Tomassetti Range r2 = Range.range(26, 19, 26, 28); 96c4a298db050ce382d4d93ea51c07c58e97f832d8Federico Tomassetti assertEquals(false, r1.contains(r2)); 97c4a298db050ce382d4d93ea51c07c58e97f832d8Federico Tomassetti assertEquals(false, r2.contains(r1)); 98c4a298db050ce382d4d93ea51c07c58e97f832d8Federico Tomassetti } 99c4a298db050ce382d4d93ea51c07c58e97f832d8Federico Tomassetti 1000b7843523910ae16ae34465b7cfaf2e4d2c50160Federico Tomassetti} 101