blob: 4a4b1c96e6b27b0bdc394e2c8e7db7e18624b6c2 [file]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @author Dmitry A. Durnev, Denis M. Kishenko
*/
package java.awt;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.geom.Rectangle2D;
public class RectangleTest extends SerializeTestCase {
static {
SERIALIZATION_TEST = true;
}
Rectangle r;
public RectangleTest(String name) {
super(name);
}
@Override
protected void setUp() throws Exception {
super.setUp();
r = new Rectangle(1, 2, 3, 4);
}
@Override
protected void tearDown() throws Exception {
r = null;
super.tearDown();
}
public void testCreate1() {
assertEquals(new Rectangle(0, 0, 0, 0), new Rectangle());
}
public void testCreate2() {
assertEquals(new Rectangle(0, 0, 5, 6), new Rectangle(5, 6));
}
public void testCreate3() {
assertEquals(new Rectangle(0, 0, 5, 6), new Rectangle(new Dimension(5, 6)));
}
public void testCreate4() {
assertEquals(new Rectangle(5, 6, 0, 0), new Rectangle(new Point(5, 6)));
}
public void testCreate5() {
assertEquals(new Rectangle(5, 6, 7, 8), new Rectangle(new Point(5, 6), new Dimension(7, 8)));
}
public void testCreate6() {
assertEquals(new Rectangle(5, 6, 7, 8), new Rectangle(new Rectangle(5, 6, 7, 8)));
}
public void testGetX() {
assertEquals(1, (int)r.getX());
}
public void testGetY() {
assertEquals(2, (int)r.getY());
}
public void testGetWidth() {
assertEquals(3, (int)r.getWidth());
}
public void testGetHeight() {
assertEquals(4, (int)r.getHeight());
}
public void testIsEmpty() {
assertTrue(!new Rectangle(1, 2, 3, 4).isEmpty());
assertTrue(new Rectangle(1, 2, -3, 4).isEmpty());
assertTrue(new Rectangle(1, 2, 3, -4).isEmpty());
assertTrue(new Rectangle(1, 2, -3, -4).isEmpty());
}
public void testEquals() {
assertTrue(r.equals(new Rectangle(1, 2, 3, 4)));
assertTrue(!r.equals(new Rectangle(0, 2, 3, 4)));
assertTrue(!r.equals(new Rectangle(1, 0, 3, 4)));
assertTrue(!r.equals(new Rectangle(1, 2, 0, 4)));
assertTrue(!r.equals(new Rectangle(1, 2, 3, 0)));
}
public void testToString() {
assertEquals("java.awt.Rectangle[x=1,y=2,width=3,height=4]", r.toString());
}
public void testGetSize() {
assertEquals(new Dimension(3, 4), r.getSize());
}
public void testSetSize1() {
r.setSize(new Dimension(5, 6));
assertEquals(new Dimension(5, 6), r.getSize());
}
public void testSetSize2() {
r.setSize(5, 6);
assertEquals(new Dimension(5, 6), r.getSize());
}
public void testGetLocation() {
assertEquals(new Point(1, 2), r.getLocation());
}
public void testSetLocation1() {
r.setLocation(5, 6);
assertEquals(new Point(5, 6), r.getLocation());
}
public void testSetLocation2() {
r.setLocation(new Point(5, 6));
assertEquals(new Point(5, 6), r.getLocation());
}
@SuppressWarnings("deprecation")
public void testMove() {
r.move(5, 6);
assertEquals(new Point(5, 6), r.getLocation());
}
public void testSetRect() {
r.setRect(5, 6, 7, 8);
assertEquals(new Rectangle(5, 6, 7, 8), r);
r.setRect(9.3, 10.7, 11.5, 12.5);
assertEquals(new Rectangle(9, 10, 12, 14), r);
r.setRect(13.2, 14.7, 15.3, 16.4);
assertEquals(new Rectangle(13, 14, 16, 18), r);
}
@SuppressWarnings("deprecation")
public void testResize() {
r.resize(5, 6);
assertEquals(new Rectangle(1, 2, 5, 6), r);
}
@SuppressWarnings("deprecation")
public void testReshape() {
r.reshape(5, 6, 7, 8);
assertEquals(new Rectangle(5, 6, 7, 8), r);
}
public void testGetBounds() {
assertEquals(new Rectangle(1, 2, 3, 4), r.getBounds());
}
public void testGetBounds2D() {
assertEquals(new Rectangle(1, 2, 3, 4), r.getBounds2D());
}
public void setBounds1() {
r.setBounds(5, 6, 7, 8);
assertEquals(new Rectangle(5, 6, 7, 8), r.getBounds());
}
public void setBounds2() {
r.setBounds(new Rectangle(5, 6, 7, 8));
assertEquals(new Rectangle(5, 6, 7, 8), r.getBounds());
}
public void testGrow() {
r.grow(0, 0);
assertEquals(new Rectangle(1, 2, 3, 4), r);
r.grow(1, 1);
assertEquals(new Rectangle(0, 1, 5, 6), r);
r.grow(-1, -1);
assertEquals(new Rectangle(1, 2, 3, 4), r);
}
public void testTranslate(){
r.translate(0, 0);
assertEquals(new Point(1, 2), r.getLocation());
r.translate(5, 6);
assertEquals(new Point(6, 8), r.getLocation());
r.translate(-5, -6);
assertEquals(new Point(1, 2), r.getLocation());
}
public void testAddPoint1() {
r.add(0, 0);
assertEquals(new Rectangle(0, 0, 4, 6), r);
r.add(1, 1);
assertEquals(new Rectangle(0, 0, 4, 6), r);
r.add(7, 8);
assertEquals(new Rectangle(0, 0, 7, 8), r);
r.add(5, 9);
assertEquals(new Rectangle(0, 0, 7, 9), r);
r.add(9, 6);
assertEquals(new Rectangle(0, 0, 9, 9), r);
}
public void testAddPoint2() {
r.add(new Point(0, 0));
assertEquals(new Rectangle(0, 0, 4, 6), r);
r.add(new Point(1, 1));
assertEquals(new Rectangle(0, 0, 4, 6), r);
r.add(new Point(7, 8));
assertEquals(new Rectangle(0, 0, 7, 8), r);
r.add(new Point(5, 9));
assertEquals(new Rectangle(0, 0, 7, 9), r);
r.add(new Point(9, 6));
assertEquals(new Rectangle(0, 0, 9, 9), r);
}
public void testAddRect() {
r.add(new Rectangle(1, 2, 3, 4)); // The same
assertEquals(new Rectangle(1, 2, 3, 4), r);
r.add(new Rectangle(2, 3, 2, 3)); // Inside
assertEquals(new Rectangle(1, 2, 3, 4), r);
r.add(new Rectangle(0, 0, 1, 2)); // Outside
assertEquals(new Rectangle(0, 0, 4, 6), r);
r.add(new Rectangle(2, 3, 3, 4)); // Intersect
assertEquals(new Rectangle(0, 0, 5, 7), r);
r.add(new Rectangle(-1, -1, 6, 8)); // Cover
assertEquals(new Rectangle(-1, -1, 6, 8), r);
}
public void testContainsPoint1() {
assertTrue(r.contains(2, 3));
assertTrue(!r.contains(0, 0));
assertTrue(!r.contains(0, 5));
assertTrue(!r.contains(6, 5));
assertTrue(!r.contains(6, 0));
}
public void testContainsPoint2() {
assertTrue(r.contains(new Point(2, 3)));
assertTrue(!r.contains(new Point(0, 0)));
assertTrue(!r.contains(new Point(0, 5)));
assertTrue(!r.contains(new Point(6, 5)));
assertTrue(!r.contains(new Point(6, 0)));
}
@SuppressWarnings("deprecation")
public void testInside() {
assertTrue(r.inside(2, 3));
assertTrue(!r.inside(0, 0));
assertTrue(!r.inside(0, 7));
assertTrue(!r.inside(5, 7));
assertTrue(!r.inside(5, 0));
}
public void testContainsRect1() {
assertTrue(!r.contains(0, 0, 0, 0)); // Empty
assertTrue(r.contains(1, 2, 3, 4)); // The same
assertTrue(r.contains(2, 3, 1, 2)); // Inside
assertTrue(!r.contains(5, 7, 1, 2)); // Outside
assertTrue(!r.contains(2, 3, 5, 6)); // Intersect
assertTrue(!r.contains(0, 0, 5, 6)); // Cover
}
public void testContainsRect2() {
assertTrue(!r.contains(new Rectangle(0, 0, 0, 0))); // Empty
assertTrue(r.contains(new Rectangle(1, 2, 3, 4))); // The same
assertTrue(r.contains(new Rectangle(2, 3, 1, 2))); // Inside
assertTrue(!r.contains(new Rectangle(5, 7, 1, 2))); // Outside
assertTrue(!r.contains(new Rectangle(2, 3, 5, 6))); // Intersect
assertTrue(!r.contains(new Rectangle(0, 0, 5, 6))); // Cover
}
public void testIntersects() {
assertTrue(!r.intersects(0, 0, 0, 0)); // Empty
assertTrue(r.intersects(1, 2, 3, 4)); // The same
assertTrue(r.intersects(2, 3, 1, 2)); // Inside
assertTrue(!r.intersects(5, 7, 1, 2)); // Outside
assertTrue(r.intersects(2, 3, 5, 6)); // Intersect
assertTrue(r.intersects(0, 0, 5, 6)); // Cover
}
public void testIntersection() {
assertEquals(new Rectangle(1, 2, -1, -2), r.intersection(new Rectangle())); // Empty
assertEquals(new Rectangle(1, 2, 3, 4), r.intersection(new Rectangle(1, 2, 3, 4))); // The same
assertEquals(new Rectangle(2, 3, 1, 2), r.intersection(new Rectangle(2, 3, 1, 2))); // Inside
assertEquals(new Rectangle(5, 7, -1, -1), r.intersection(new Rectangle(5, 7, 1, 2))); // Outside
assertEquals(new Rectangle(2, 3, 2, 3), r.intersection(new Rectangle(2, 3, 5, 6))); // Intersect
assertEquals(new Rectangle(1, 2, 3, 4), r.intersection(new Rectangle(0, 0, 5, 6))); // Cover
}
public void testCreateIntersection1() {
// assertEquals(r.createIntersection(new Rectangle()), new Rectangle()); // Empty
assertEquals(new Rectangle(1, 2, 3, 4), r.createIntersection(new Rectangle(1, 2, 3, 4))); // The same
assertEquals(new Rectangle(2, 3, 1, 2), r.createIntersection(new Rectangle(2, 3, 1, 2))); // Inside
assertEquals(new Rectangle(5, 7, -1, -1), r.createIntersection(new Rectangle(5, 7, 1, 2))); // Outside
assertEquals(new Rectangle(2, 3, 2, 3), r.createIntersection(new Rectangle(2, 3, 5, 6))); // Intersect
assertEquals(new Rectangle(1, 2, 3, 4), r.createIntersection(new Rectangle(0, 0, 5, 6))); // Cover
}
public void testCreateIntersection2() {
// assertEquals(r.createIntersection(new Rectangle2D.Double()), new Rectangle2D.Double()); // Empty
assertEquals(new Rectangle2D.Double(1, 2, 3, 4), r.createIntersection(new Rectangle2D.Double(1, 2, 3, 4))); // The same
assertEquals(new Rectangle2D.Double(2, 3, 1, 2), r.createIntersection(new Rectangle2D.Double(2, 3, 1, 2))); // Inside
assertEquals(new Rectangle2D.Double(5, 7, -1, -1), r.createIntersection(new Rectangle2D.Double(5, 7, 1, 2))); // Outside
assertEquals(new Rectangle2D.Double(2, 3, 2, 3), r.createIntersection(new Rectangle2D.Double(2, 3, 5, 6))); // Intersect
assertEquals(new Rectangle2D.Double(1, 2, 3, 4), r.createIntersection(new Rectangle2D.Double(0, 0, 5, 6))); // Cover
}
public void testOutcode() {
assertEquals(Rectangle2D.OUT_LEFT | Rectangle2D.OUT_TOP, r.outcode(0, 0));
assertEquals(Rectangle2D.OUT_TOP, r.outcode(2, 0));
assertEquals(Rectangle2D.OUT_RIGHT | Rectangle2D.OUT_TOP, r.outcode(5, 0));
assertEquals(Rectangle2D.OUT_RIGHT, r.outcode(5, 3));
assertEquals(Rectangle2D.OUT_RIGHT | Rectangle2D.OUT_BOTTOM, r.outcode(5, 7));
assertEquals(Rectangle2D.OUT_BOTTOM, r.outcode(2, 7));
assertEquals(Rectangle2D.OUT_LEFT | Rectangle2D.OUT_BOTTOM, r.outcode(0, 7));
assertEquals(Rectangle2D.OUT_LEFT, r.outcode(0, 3));
assertEquals(0, r.outcode(2, 3));
}
public void testUnion() {
// assertEquals(r.createUnion(new Rectangle()), new Rectangle(1, 2, 3, 4)); // Empty
assertEquals(new Rectangle(1, 2, 3, 4), r.createUnion(new Rectangle(1, 2, 3, 4))); // The same
assertEquals(new Rectangle(1, 2, 3, 4), r.createUnion(new Rectangle(2, 3, 1, 2))); // Inside
assertEquals(new Rectangle(1, 2, 5, 7), r.createUnion(new Rectangle(5, 7, 1, 2))); // Outside
assertEquals(new Rectangle(1, 2, 6, 7), r.createUnion(new Rectangle(2, 3, 5, 6))); // Intersect
assertEquals(new Rectangle(0, 0, 5, 6), r.createUnion(new Rectangle(0, 0, 5, 6))); // Cover
}
public void testCreateUnion() {
// assertEquals(r.createUnion(new Rectangle2D.Double()), new Rectangle2D.Double(1, 2, 3, 4)); // Empty
assertEquals(new Rectangle2D.Double(1, 2, 3, 4), r.createUnion(new Rectangle2D.Double(1, 2, 3, 4))); // The same
assertEquals(new Rectangle2D.Double(1, 2, 3, 4), r.createUnion(new Rectangle2D.Double(2, 3, 1, 2))); // Inside
assertEquals(new Rectangle2D.Double(1, 2, 5, 7), r.createUnion(new Rectangle2D.Double(5, 7, 1, 2))); // Outside
assertEquals(new Rectangle2D.Double(1, 2, 6, 7), r.createUnion(new Rectangle2D.Double(2, 3, 5, 6))); // Intersect
assertEquals(new Rectangle2D.Double(0, 0, 5, 6), r.createUnion(new Rectangle2D.Double(0, 0, 5, 6))); // Cover
}
public void testSerializeRead1() {
checkRead(new Rectangle());
}
public void testSerializeRead2() {
checkRead(new Rectangle(1, 2));
}
public void testSerializeRead3() {
checkRead(new Rectangle(1, 2, 3, 4));
}
public void testSerializeWrite1() {
checkWrite(new Rectangle());
}
public void testSerializeWrite2() {
checkWrite(new Rectangle(1, 2));
}
public void testSerializeWrite3() {
checkWrite(new Rectangle(1, 2, 3, 4));
}
public void createSerializeTemplates() {
saveSerialized(new Rectangle());
saveSerialized(new Rectangle(1, 2));
saveSerialized(new Rectangle(1, 2, 3, 4));
}
public static void main(String[] args) {
// new RectangleTest("").createSerializeTemplates();
junit.textui.TestRunner.run(RectangleTest.class);
}
}