blob: e929a51f51c7156abcc973b424a93336c48ebb5c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.draw2d.test;
import junit.framework.TestCase;
import org.eclipse.draw2d.geometry.Insets;
import org.eclipse.draw2d.geometry.PrecisionRectangle;
import org.eclipse.draw2d.geometry.Rectangle;
/**
* @author sshaw
*
*/
public class PrecisionRectangleTest extends TestCase {
public void testShrink() {
Insets insets = new Insets(2, 2, 2, 2);
PrecisionRectangle r = new PrecisionRectangle(new Rectangle(100, 100,
250, 250));
PrecisionRectangle copy = r.getPreciseCopy();
r.performTranslate(30, 30);
r.performScale(2f);
r.shrink(insets);
r.performScale(1 / 2f);
r.performTranslate(-30, -30);
assertTrue(!r.equals(copy));
insets = new Insets(1, 1, -1, -1);
r = new PrecisionRectangle(new Rectangle(0, 0, 3, 3));
copy = r.getPreciseCopy();
r.performTranslate(1, 1);
r.performScale(4f);
r.shrink(insets);
r.performScale(1 / 4f);
r.performTranslate(-1, -1);
assertTrue(!r.equals(copy));
r = new PrecisionRectangle(-9.486614173228347, -34.431496062992125,
41.99055118110236, 25.92755905511811);
r.performScale(26.458333333333332);
r.performScale(1.0 / 26.458333333333332);
assertEquals(-9.486614173228347, r.preciseX(), 0);
assertEquals(-34.431496062992125, r.preciseY(), 0);
assertEquals(41.99055118110236, r.preciseWidth(), 0);
assertEquals(25.92755905511811, r.preciseHeight(), 0);
}
public void testExpand() {
PrecisionRectangle r = new PrecisionRectangle(new Rectangle(100, 100,
250, 250));
PrecisionRectangle copy = r.getPreciseCopy();
r.expand(0.1, 0.1);
assertEquals(r, new PrecisionRectangle(99.9, 99.9, 250.2, 250.2));
assertEquals(r, copy.getExpanded(0.1, 0.1));
r.shrink(0.1, 0.1);
}
public void testUnion() {
PrecisionRectangle r = new PrecisionRectangle(-9.486614173228347,
-34.431496062992125, 41.99055118110236, 25.92755905511811);
r.union(100.5, 100.5);
assertEquals(new PrecisionRectangle(-9.486614173228347,
-34.431496062992125, 100.5 + 9.486614173228347,
100.5 + 34.431496062992125), r);
}
public void testResize() {
PrecisionRectangle r = new PrecisionRectangle(-9.486614173228347,
-34.431496062992125, 41.99055118110236, 25.92755905511811);
r.resize(100.1, 100.1);
assertEquals(new PrecisionRectangle(-9.486614173228347,
-34.431496062992125, 41.99055118110236 + 100.1,
25.92755905511811 + 100.1), r);
}
public void testContains() {
PrecisionRectangle r = new PrecisionRectangle(-9.486614173228347,
-34.431496062992125, 41.99055118110236, 25.92755905511811);
assertTrue(r.contains(-9.486614173228347, -34.431496062992125));
assertTrue(r.contains(-9.486614173228347 + 41.99055118110235,
-34.431496062992125 + 25.92755905511810));
}
// contains
}