bamboo tests
[jalview.git] / test / jalview / gui / SeqCanvasTest.java
index 801c778..d5776be 100644 (file)
@@ -23,6 +23,7 @@ package jalview.gui;
 import static org.testng.Assert.assertEquals;
 
 import jalview.bin.Cache;
+import jalview.bin.Jalview;
 import jalview.datamodel.AlignmentI;
 import jalview.io.DataSourceType;
 import jalview.io.FileLoader;
@@ -31,6 +32,7 @@ import jalview.util.Platform;
 import java.awt.Font;
 import java.awt.FontMetrics;
 
+import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
@@ -42,6 +44,7 @@ public class SeqCanvasTest
   public void setUp()
   {
     Cache.initLogger();
+    Jalview.setSynchronous(true);
   }
 
   /**
@@ -65,8 +68,12 @@ public class SeqCanvasTest
     av.setFont(new Font("SansSerif", Font.PLAIN, 14), true);
     int charHeight = av.getCharHeight();
     int charWidth = av.getCharWidth();
-    assertEquals(charHeight, Platform.isMac() ? 17 : 19);
-    assertEquals(charWidth, Platform.isMac() ? 12 : 11);
+    Assert.assertTrue(charHeight == 17 && charWidth == 12
+            || charHeight == 19 && charWidth == 11,
+            "char height/width " + charHeight + "/" + charWidth);
+    //
+    // assertEquals(charHeight, Platform.isMac() ? 17 : 19);
+    // assertEquals(charWidth, Platform.isMac() ? 12 : 11);
 
     /*
      * first with scales above, left, right
@@ -77,8 +84,23 @@ public class SeqCanvasTest
     av.setScaleRightWrapped(true);
     FontMetrics fm = testee.getFontMetrics(av.getFont());
     int labelWidth = fm.stringWidth("000") + charWidth;
-    assertEquals(labelWidth,
-            Platform.isMac() ? 3 * 9 + charWidth : 3 * 8 + charWidth);
+    // BH 2020.03.22 It is not really necessary to be this detailed. Different OS-based UIs will
+    // always have slightly different parameters. StringgWidths are not
+    // necessarily linear sums of the letters involved.
+    // for example, the calculation for JavaScript is a float that has to be
+    // rounded.
+    // ..............................mac................PC................linux?
+    Assert.assertTrue(
+            labelWidth == 39 || labelWidth == 35 || labelWidth == 36);// 3 * 9 +
+                                                                      // charWidth
+                                                                      // ||
+                                                                      // labelWidth
+                                                                      // == 3 *
+                                                                      // 8 +
+                                                                      // charWidth,
+                                                                      // "labelWidth
+                                                                      // 36 or
+                                                                      // 39");
 
     /*
      * width 400 pixels leaves (400 - 2*labelWidth) for residue columns
@@ -235,8 +257,12 @@ public class SeqCanvasTest
     int charHeight = av.getCharHeight();
     int charWidth = av.getCharWidth();
 
-    assertEquals(charHeight, Platform.isMac() ? 17 : 19);
-    assertEquals(charWidth, Platform.isMac() ? 12 : 11);
+    Assert.assertTrue(
+            charHeight == 17 && charWidth == 12
+                    || charHeight == 19 && charWidth == 11,
+            "char height/width " + charHeight + "/" + charWidth);
+    // assertEquals(charHeight, Platform.isMac() ? 17 : 19);
+    // assertEquals(charWidth, Platform.isMac() ? 12 : 11);
 
     SeqCanvas testee = af.alignPanel.getSeqPanel().seqCanvas;
   
@@ -339,10 +365,10 @@ public class SeqCanvasTest
     av.setFont(new Font("SansSerif", Font.PLAIN, 14), true);
     int charHeight = av.getCharHeight();
     int charWidth = av.getCharWidth();
-    // Windows h=19, w=11.
-    assertEquals(charHeight, Platform.isMac() ? 17 : 19);
-    assertEquals(charWidth, Platform.isMac() ? 12 : 11);
-
+    // Windows h=19, w=11; Mac (and Linux?) 17,11
+    Assert.assertTrue(charHeight == 17 && charWidth == 12
+            || charHeight == 19 && charWidth == 11,
+            "char height/width " + charHeight + "/" + charWidth);
     int canvasWidth = 400;
     int canvasHeight = 300;
     testee.calculateWrappedGeometry(canvasWidth, canvasHeight);