Package org.apache.isis.viewer.dnd.viewer.drawing

Source Code of org.apache.isis.viewer.dnd.viewer.drawing.BoundsTest

/*
*  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.
*/

package org.apache.isis.viewer.dnd.viewer.drawing;

import junit.framework.TestCase;

import org.apache.isis.viewer.dnd.drawing.Bounds;
import org.apache.isis.viewer.dnd.drawing.Location;
import org.apache.isis.viewer.dnd.drawing.Padding;
import org.apache.isis.viewer.dnd.drawing.Size;

public class BoundsTest extends TestCase {

    public static void main(final String[] args) {
        junit.textui.TestRunner.run(BoundsTest.class);
    }

    private Bounds b;

    @Override
    protected void setUp() throws Exception {
        org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF);
        b = new Bounds(5, 10, 10, 20);
    }

    public void testContains() {
        assertTrue(b.contains(new Location(8, 15)));
        assertTrue(b.contains(new Location(5, 10)));
        assertFalse(b.contains(new Location(4, 10)));
        assertFalse(b.contains(new Location(15, 10)));
        assertTrue(b.contains(new Location(10, 29)));
    }

    public void testNotEquals() {
        Bounds c = new Bounds(0, 10, 10, 20);
        assertFalse(c.equals(b));

        c = new Bounds(5, 0, 10, 20);
        assertFalse(c.equals(b));

        c = new Bounds(5, 10, 0, 20);
        assertFalse(c.equals(b));

        c = new Bounds(5, 10, 10, 0);
        assertFalse(c.equals(b));
    }

    public void testEquals() {
        final Bounds c = new Bounds(5, 10, 10, 20);
        assertTrue(c.equals(b));
        assertTrue(b.equals(c));
    }

    public void testContracSize() {
        b.contract(new Size(5, 12));
        assertEquals(5, b.getWidth());
        assertEquals(8, b.getHeight());
    }

    public void testContractHeight() {
        b.contractHeight(12);
        assertEquals(8, b.getHeight());
    }

    public void testContractPadding() {
        b.contract(new Padding(2, 4, 1, 3));
        assertEquals(3, b.getWidth());
        assertEquals(17, b.getHeight());
        assertEquals(9, b.getX());
        assertEquals(12, b.getY());
    }

    public void testContracWidth() {
        b.contractWidth(5);
        assertEquals(5, b.getWidth());
    }

    public void testCopyBounds() {
        final Bounds c = new Bounds();
        c.setBounds(b);

        assertEquals(5, b.getX());
        assertEquals(10, b.getY());
        assertEquals(10, b.getWidth());
        assertEquals(20, b.getHeight());
    }

    public void testDefaultBounds() {
        final Bounds b = new Bounds();
        assertEquals(0, b.getX());
        assertEquals(0, b.getY());
        assertEquals(0, b.getWidth());
        assertEquals(0, b.getHeight());
    }

    public void testDownLeftIntersects() {
        final Bounds c = new Bounds(b);
        c.translate(-5, -5);
        assertTrue(b.intersects(c));

        c.translate(-b.getWidth(), 0);
        assertFalse(b.intersects(c));
    }

    public void testEnclosingUnion() {
        final Bounds c = new Bounds(10, 20, 5, 5);
        final Bounds u = new Bounds(b);
        u.union(c);
        assertEquals(b, u);
    }

    public void testExplicitBounds() {
        assertEquals(5, b.getX());
        assertEquals(10, b.getY());
        assertEquals(10, b.getWidth());
        assertEquals(20, b.getHeight());

        final Bounds b1 = new Bounds(b);
        assertEquals(5, b1.getX());
        assertEquals(10, b1.getY());
        assertEquals(10, b1.getWidth());
        assertEquals(20, b1.getHeight());

        final Bounds b2 = new Bounds(new Location(10, 20), new Size(8, 16));
        assertEquals(10, b2.getX());
        assertEquals(20, b2.getY());
        assertEquals(8, b2.getWidth());
        assertEquals(16, b2.getHeight());

        final Bounds b3 = new Bounds(new Size(5, 10));
        assertEquals(0, b3.getX());
        assertEquals(0, b3.getY());
        assertEquals(5, b3.getWidth());
        assertEquals(10, b3.getHeight());
    }

    public void testFarPoint() {
        assertEquals(5, b.getX());
        assertEquals(14, b.getX2());
        assertEquals(10, b.getY());
        assertEquals(29, b.getY2());
    }

    public void testgrow() {
        b.extend(10, 5);
        assertEquals(5, b.getX());
        assertEquals(10, b.getY());
        assertEquals(20, b.getWidth());
        assertEquals(25, b.getHeight());
    }

    public void testLimitBoundsWhenTooTall() {
        final Bounds b2 = new Bounds(10, 0, 4, 30);
        assertTrue(b.limitBounds(b2));
        assertEquals(new Bounds(10, 10, 4, 20), b2);
    }

    public void testLimitBoundsWhenTooWide() {
        final Bounds b2 = new Bounds(0, 12, 20, 5);
        assertTrue(b.limitBounds(b2));
        assertEquals(new Bounds(5, 12, 10, 5), b2);
    }

    public void testLimitBoundsWithHorizontalOverlap() {
        final Bounds b2 = new Bounds(10, 12, 10, 5);
        assertTrue(b.limitBounds(b2));
        assertEquals(new Bounds(5, 12, 10, 5), b2);
    }

    public void testLimitBoundsWithNoOverlap() {
        final Bounds b2 = new Bounds(7, 12, 5, 5);
        assertFalse(b.limitBounds(b2));
        assertEquals(new Bounds(7, 12, 5, 5), b2);
    }

    public void testLimitBoundsWithVerticalOverlap() {
        final Bounds b2 = new Bounds(5, 20, 5, 20);
        assertTrue(b.limitBounds(b2));
        assertEquals(new Bounds(5, 10, 5, 20), b2);
    }

    public void testNonOverlappingUnion() {
        final Bounds c = new Bounds(20, 40, 10, 20);
        final Bounds u = new Bounds(b);
        u.union(c);
        assertEquals(new Bounds(5, 10, 25, 50), u);
    }

    public void testOverlappingIntersects() {
        Bounds c = new Bounds(b);
        c.translate(-5, -5);
        c.extend(10, 10);
        assertTrue(b.intersects(c));

        c = new Bounds(b);
        c.translate(5, 5);
        c.extend(-10, -10);
        assertTrue(b.intersects(c));
    }

    public void testOverlappingUnion() {
        final Bounds c = new Bounds(3, 5, 10, 10);
        final Bounds u = new Bounds(b);
        u.union(c);
        assertEquals(new Bounds(3, 5, 12, 25), u);
    }

    public void testTranslate() {
        b.translate(10, 5);
        assertEquals(15, b.getX());
        assertEquals(15, b.getY());
        assertEquals(10, b.getWidth());
        assertEquals(20, b.getHeight());
    }

    public void testUpRightIntersects() {
        final Bounds c = new Bounds(b);
        c.translate(5, 5);
        assertTrue(b.intersects(c));

        c.translate(b.getWidth(), 0);
        assertFalse(b.intersects(c));
    }

    public void testXNoOverlapToLeft() {
        final Bounds c = new Bounds(1, 15, 4, 0);
        assertFalse(b.intersects(c));
    }

    public void testXNoOverlapToRight() {
        final Bounds c = new Bounds(15, 15, 5, 0);
        assertFalse(b.intersects(c));
    }

    public void testXOverlapInCenter() {
        final Bounds c = new Bounds(6, 15, 2, 0);
        assertTrue(b.intersects(c));
    }

    public void testXOverlapToLeft() {
        final Bounds c = new Bounds(1, 15, 6, 0);
        assertTrue(b.intersects(c));
    }

    public void testXOverlapToRight() {
        final Bounds c = new Bounds(14, 15, 5, 0);
        assertTrue(b.intersects(c));
    }

    public void testYOverlapToTop() {
        final Bounds c = new Bounds(10, 29, 0, 5);
        assertTrue(b.intersects(c));
    }

}
TOP

Related Classes of org.apache.isis.viewer.dnd.viewer.drawing.BoundsTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.