//----------------------------------------------------------------------------// // // // A l i g n m e n t T e s t // // // //----------------------------------------------------------------------------// // <editor-fold defaultstate="collapsed" desc="hdr"> // // Copyright (C) Hervé Bitteur 2000-2011. All rights reserved. // // This software is released under the GNU General Public License. // // Goto http://kenai.com/projects/audiveris to report bugs or suggestions. // //----------------------------------------------------------------------------// // </editor-fold> package omr.ui.symbol; import omr.ui.symbol.Alignment.Horizontal; import static omr.ui.symbol.Alignment.Horizontal.*; import omr.ui.symbol.Alignment.Vertical; import static omr.ui.symbol.Alignment.Vertical.*; import static org.junit.Assert.*; import org.junit.Test; import java.awt.Point; import java.awt.Rectangle; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; /** * Class {@code AlignmentTest} * * @author Hervé Bitteur */ public class AlignmentTest { //~ Instance fields -------------------------------------------------------- /** Map Alignment -> Point */ Map<Alignment, Point> points = new HashMap<>(); //~ Constructors ----------------------------------------------------------- /** * Creates a new AlignmentTest object. */ public AlignmentTest () { } //~ Methods ---------------------------------------------------------------- /** * Test of toPoint method, of class Alignment. */ @Test public void testToPoint () { System.out.println("toPoint"); Rectangle rect = new Rectangle(-6, -26, 50, 38); assignPoints(); for (Vertical vert : Vertical.values()) { for (Horizontal hori : Horizontal.values()) { Alignment instance = new Alignment(vert, hori); Point start = points.get(instance); for (Vertical v : Vertical.values()) { for (Horizontal h : Horizontal.values()) { Alignment expAlign = new Alignment(v, h); Point to = instance.toPoint(expAlign, rect); Point target = new Point(start); target.translate(to.x, to.y); System.out.print( instance + " + " + to + " = " + target); Alignment align = getAlign(target); Point expTarget = points.get(expAlign); System.out.println(" " + expAlign + " =? " + align); assertEquals("Different points", expTarget, target); assertEquals("Different aligns", expAlign, align); } } System.out.println(); } } } // /** // * Test of toPoint method, of class Alignment. // */ // @Test // public void testToPoint2D () // { // System.out.println("toPoint2D"); // // Rectangle2D rect = new Rectangle2D.Float(-5.8f, -26.0f, 50.0f, 37.4f); // Point2D expTo = null; // // for (Vertical vert : Vertical.values()) { // for (Horizontal hori : Horizontal.values()) { // Alignment instance = new Alignment(vert, hori); // // for (Vertical v : Vertical.values()) { // for (Horizontal h : Horizontal.values()) { // Alignment that = new Alignment(v, h); // Point2D to = instance.toPoint(that, rect); // // System.out.println( // instance + " + " + to + " = " + that); // } // } // // System.out.println(); // } // } // } private Alignment getAlign (Point target) { for (Entry<Alignment, Point> entry : points.entrySet()) { if (entry.getValue() .equals(target)) { return entry.getKey(); } } return null; } private void assignPoints () { points.put(new Alignment(TOP, LEFT), new Point(-6, -26)); points.put(new Alignment(TOP, CENTER), new Point(19, -26)); points.put(new Alignment(TOP, RIGHT), new Point(44, -26)); points.put(new Alignment(TOP, XORIGIN), new Point(0, -26)); points.put(new Alignment(MIDDLE, LEFT), new Point(-6, -7)); points.put(new Alignment(MIDDLE, CENTER), new Point(19, -7)); points.put(new Alignment(MIDDLE, RIGHT), new Point(44, -7)); points.put(new Alignment(MIDDLE, XORIGIN), new Point(0, -7)); points.put(new Alignment(BOTTOM, LEFT), new Point(-6, 12)); points.put(new Alignment(BOTTOM, CENTER), new Point(19, 12)); points.put(new Alignment(BOTTOM, RIGHT), new Point(44, 12)); points.put(new Alignment(BOTTOM, XORIGIN), new Point(0, 12)); points.put(new Alignment(BASELINE, LEFT), new Point(-6, 0)); points.put(new Alignment(BASELINE, CENTER), new Point(19, 0)); points.put(new Alignment(BASELINE, RIGHT), new Point(44, 0)); points.put(new Alignment(BASELINE, XORIGIN), new Point(0, 0)); } }