X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Fgui%2FSeqCanvasTest.java;h=801c778438b5a4fa2b86a492df49205cbbbf63bb;hb=55ebdfcc6bd979605c9bb2b4092a422b035bc27e;hp=bcb1cfd7f0c392aebc2ee56bcb2faf0e769282b2;hpb=2c5c51911c44a653b8ed54c3cdb4500c8aca1475;p=jalview.git diff --git a/test/jalview/gui/SeqCanvasTest.java b/test/jalview/gui/SeqCanvasTest.java index bcb1cfd..801c778 100644 --- a/test/jalview/gui/SeqCanvasTest.java +++ b/test/jalview/gui/SeqCanvasTest.java @@ -22,19 +22,28 @@ package jalview.gui; import static org.testng.Assert.assertEquals; +import jalview.bin.Cache; import jalview.datamodel.AlignmentI; import jalview.io.DataSourceType; import jalview.io.FileLoader; +import jalview.util.Platform; import java.awt.Font; import java.awt.FontMetrics; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import junit.extensions.PA; public class SeqCanvasTest { + @BeforeClass(alwaysRun = true) + public void setUp() + { + Cache.initLogger(); + } + /** * Test the method that computes wrapped width in residues, height of wrapped * widths in pixels, and the number of widths visible @@ -56,8 +65,8 @@ public class SeqCanvasTest av.setFont(new Font("SansSerif", Font.PLAIN, 14), true); int charHeight = av.getCharHeight(); int charWidth = av.getCharWidth(); - assertEquals(charHeight, 17); - assertEquals(charWidth, 12); + assertEquals(charHeight, Platform.isMac() ? 17 : 19); + assertEquals(charWidth, Platform.isMac() ? 12 : 11); /* * first with scales above, left, right @@ -68,7 +77,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 + assertEquals(labelWidth, + Platform.isMac() ? 3 * 9 + charWidth : 3 * 8 + charWidth); /* * width 400 pixels leaves (400 - 2*labelWidth) for residue columns @@ -97,8 +107,8 @@ public class SeqCanvasTest assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 3); /* - * reduce canvas height by 1 pixel - should not be enough height - * to draw 3 widths + * reduce canvas height by 1 pixel + * - should not be enough height to draw 3 widths */ canvasHeight -= 1; testee.calculateWrappedGeometry(canvasWidth, canvasHeight); @@ -170,11 +180,11 @@ public class SeqCanvasTest canvasWidth += 8; wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight); - assertEquals(wrappedWidth, 27); + assertEquals(wrappedWidth, 27); // 8px not enough canvasWidth += 1; wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight); - assertEquals(wrappedWidth, 28); + assertEquals(wrappedWidth, 28); // 9px is enough /* * now West but not East scale - lose 39 pixels or 4 columns @@ -190,11 +200,11 @@ public class SeqCanvasTest canvasWidth += 2; wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight); - assertEquals(wrappedWidth, 24); + assertEquals(wrappedWidth, Platform.isMac() ? 24 : 25); // 2px not enough canvasWidth += 1; wrappedWidth = testee.calculateWrappedGeometry(canvasWidth, canvasHeight); - assertEquals(wrappedWidth, 25); + assertEquals(wrappedWidth, 25); // 3px is enough /* * turn off scales left and right, make width exactly 157 columns @@ -224,9 +234,10 @@ public class SeqCanvasTest av.setFont(new Font("SansSerif", Font.PLAIN, 14), true); int charHeight = av.getCharHeight(); int charWidth = av.getCharWidth(); - assertEquals(charHeight, 17); - assertEquals(charWidth, 12); - + + assertEquals(charHeight, Platform.isMac() ? 17 : 19); + assertEquals(charWidth, Platform.isMac() ? 12 : 11); + SeqCanvas testee = af.alignPanel.getSeqPanel().seqCanvas; /* @@ -236,9 +247,12 @@ public class SeqCanvasTest av.setScaleAboveWrapped(true); av.setScaleLeftWrapped(true); av.setScaleRightWrapped(true); + FontMetrics fm = testee.getFontMetrics(av.getFont()); int labelWidth = fm.stringWidth("000") + charWidth; - assertEquals(labelWidth, 39); // 3 x 9 + charWidth + assertEquals(labelWidth, + Platform.isMac() ? 3 * 9 + charWidth : 3 * 8 + charWidth); + int annotationHeight = testee.getAnnotationHeight(); /* @@ -256,15 +270,16 @@ public class SeqCanvasTest 2 * charHeight); int repeatingHeight = (int) PA.getValue(testee, "wrappedRepeatHeightPx"); assertEquals(repeatingHeight, charHeight * (2 + al.getHeight()) - + annotationHeight); + + SeqCanvas.SEQS_ANNOTATION_GAP + annotationHeight); assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 1); /* - * repeat height is 17 * (2 + 15) = 289 + annotationHeight = 507 - * make canvas height 2 * 289 + 3 * charHeight so just enough to - * draw 2 widths and the first sequence of a third + * repeat height is 17 * (2 + 15) = 289 + 3 + annotationHeight = 510 + * make canvas height 2 of these plus 3 charHeights + * so just enough to draw 2 widths, gap + scale + the first sequence of a third */ - canvasHeight = charHeight * (17 * 2 + 3) + 2 * annotationHeight; + canvasHeight = charHeight * (17 * 2 + 3) + + 2 * (annotationHeight + SeqCanvas.SEQS_ANNOTATION_GAP); testee.calculateWrappedGeometry(canvasWidth, canvasHeight); assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 3); @@ -287,7 +302,8 @@ public class SeqCanvasTest * reduce height to enough for 2 widths and not quite a third * i.e. two repeating heights + spacer + sequence - 1 pixel */ - canvasHeight = charHeight * (16 * 2 + 2) + 2 * annotationHeight - 1; + canvasHeight = charHeight * (16 * 2 + 2) + + 2 * (annotationHeight + SeqCanvas.SEQS_ANNOTATION_GAP) - 1; testee.calculateWrappedGeometry(canvasWidth, canvasHeight); assertEquals(PA.getValue(testee, "wrappedVisibleWidths"), 2); @@ -319,13 +335,13 @@ public class SeqCanvasTest av.setScaleAboveWrapped(true); SeqCanvas testee = af.alignPanel.getSeqPanel().seqCanvas; - av.setWrapAlignment(true); av.setFont(new Font("SansSerif", Font.PLAIN, 14), true); int charHeight = av.getCharHeight(); int charWidth = av.getCharWidth(); - assertEquals(charHeight, 17); - assertEquals(charWidth, 12); + // Windows h=19, w=11. + assertEquals(charHeight, Platform.isMac() ? 17 : 19); + assertEquals(charWidth, Platform.isMac() ? 12 : 11); int canvasWidth = 400; int canvasHeight = 300;