Merge branch 'improvement/JAL-4409_implement_extra_schemes_in_getdown' into develop
[jalview.git] / test / jalview / gui / SeqCanvasTest.java
index aa50301..46c2201 100644 (file)
  */
 package jalview.gui;
 
-import java.awt.Font;
-import java.awt.FontMetrics;
-
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
+import java.awt.Font;
+import java.awt.FontMetrics;
+
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
 import jalview.bin.Cache;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SearchResults;
 import jalview.datamodel.SearchResultsI;
 import jalview.io.DataSourceType;
-import jalview.io.DataSourceType;
 import jalview.io.FileLoader;
-
 import junit.extensions.PA;
 
 public class SeqCanvasTest
@@ -76,7 +75,8 @@ public class SeqCanvasTest
     av.setScaleRightWrapped(true);
     FontMetrics fm = testee.getFontMetrics(av.getFont());
     int labelWidth = fm.stringWidth("000") + charWidth;
-    assertEquals(labelWidth, 39); // 3 x 9 + charWidth
+    // some leeway for different OS rendering of text
+    assertTrue(labelWidth >= 36 && labelWidth <= 39);
 
     /*
      * width 400 pixels leaves (400 - 2*labelWidth) for residue columns
@@ -152,7 +152,9 @@ public class SeqCanvasTest
     av.setScaleLeftWrapped(false);
     wrappedWidth = testee.calculateWrappedGeometry(canvasWidth,
             canvasHeight);
-    assertEquals(wrappedWidth, 23);
+    // some leeway for different OS rendering of text
+    assertTrue(wrappedWidth >= 22 && wrappedWidth <= 23);
+    int difference = wrappedWidth - 23;
 
     /*
      * add 10 pixels to width to fit in another whole residue column
@@ -164,7 +166,7 @@ public class SeqCanvasTest
     canvasWidth += 1;
     wrappedWidth = testee.calculateWrappedGeometry(canvasWidth,
             canvasHeight);
-    assertEquals(wrappedWidth, 24);
+    assertEquals(wrappedWidth, 24 + difference);
 
     /*
      * turn off East scale to gain 39 more pixels (3 columns remainder 3)
@@ -172,7 +174,7 @@ public class SeqCanvasTest
     av.setScaleRightWrapped(false);
     wrappedWidth = testee.calculateWrappedGeometry(canvasWidth,
             canvasHeight);
-    assertEquals(wrappedWidth, 27);
+    assertEquals(wrappedWidth, 27 + difference);
 
     /*
      * add 9 pixels to width to gain a residue column
@@ -184,7 +186,7 @@ public class SeqCanvasTest
     canvasWidth += 1;
     wrappedWidth = testee.calculateWrappedGeometry(canvasWidth,
             canvasHeight);
-    assertEquals(wrappedWidth, 28); // 9px is enough
+    assertEquals(wrappedWidth, 28 + difference); // 9px is enough
 
     /*
      * now West but not East scale - lose 39 pixels or 4 columns
@@ -204,7 +206,7 @@ public class SeqCanvasTest
     canvasWidth += 1;
     wrappedWidth = testee.calculateWrappedGeometry(canvasWidth,
             canvasHeight);
-    assertEquals(wrappedWidth, 25); // 3px is enough
+    assertEquals(wrappedWidth, 25 + difference); // 3px is enough
 
     /*
      * turn off scales left and right, make width exactly 157 columns
@@ -246,7 +248,8 @@ public class SeqCanvasTest
     av.setScaleRightWrapped(true);
     FontMetrics fm = testee.getFontMetrics(av.getFont());
     int labelWidth = fm.stringWidth("000") + charWidth;
-    assertEquals(labelWidth, 39); // 3 x 9 + charWidth
+    // some leeway for different OS rendering of text
+    assertTrue(labelWidth >= 36 && labelWidth <= 39);
     int annotationHeight = testee.getAnnotationHeight();
 
     /*