blob: 2a2aeb61d8568f2f280824ade8acf7c99c88da96 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2004 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.gmf.tests.runtime.draw2d.ui;
import junit.framework.TestCase;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Translatable;
import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode;
import org.eclipse.gmf.runtime.draw2d.ui.mapmode.MapModeTypes;
import org.eclipse.gmf.runtime.draw2d.ui.mapmode.MapModeUtil;
/**
* This TestCase is designed to test the functionality of the MapMode
* translations. (i.e. HiMetrics)
*
* @author jschofie / sshaw
*/
public class MapModeUtilTest extends TestCase {
public void testTranslationDefault() {
verifyMapMode(MapModeUtil.getMapMode());
}
public void testTranslationHiMetric() {
verifyMapMode(MapModeTypes.HIMETRIC_MM);
}
public void testTranslationIdentity() {
verifyMapMode(MapModeTypes.IDENTITY_MM);
}
static class MapModeFigure extends Figure implements IMapMode {
public int DPtoLP(int deviceUnit) {
return MapModeTypes.DEFAULT_MM.DPtoLP(deviceUnit);
}
public Translatable DPtoLP(Translatable t) {
return MapModeTypes.DEFAULT_MM.DPtoLP(t);
}
public int LPtoDP(int logicalUnit) {
return MapModeTypes.DEFAULT_MM.LPtoDP(logicalUnit);
}
public Translatable LPtoDP(Translatable t) {
return MapModeTypes.DEFAULT_MM.LPtoDP(t);
}
}
public void testTranslationFromFigure() {
MapModeFigure mmFig = new MapModeFigure();
verifyMapMode(MapModeUtil.getMapMode(mmFig));
Figure fig = new Figure();
fig.setParent(mmFig);
verifyMapMode(MapModeUtil.getMapMode(fig));
verifyMapMode(MapModeUtil.getMapMode(null));
}
private void verifyMapMode(IMapMode mm) {
for( int index = 0; index < 1000; index++ ) {
int val1 = index;
int val2 = mm.DPtoLP(index);
Point ptLP = (Point)mm.DPtoLP(new Point(index, 0));
assertEquals(val2, ptLP.x);
int val3 = mm.LPtoDP(val2);
Point ptDP = (Point)mm.LPtoDP(new Point(val2, 0));
assertEquals(val3, ptDP.x);
assertTrue(Math.abs(val1 - val3) <= 1);
}
}
}