This is the mail archive of the
mauve-patches@sourceware.org
mailing list for the Mauve project.
FYI: TestLogicalFontMetrics
- From: Thomas Fitzsimmons <fitzsim at redhat dot com>
- To: mauve-patches at sources dot redhat dot com
- Date: Thu, 16 Mar 2006 15:55:29 -0500
- Subject: FYI: TestLogicalFontMetrics
Hi,
I committed this new test to Mauve.
Tom
2006-03-16 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/testlet/java/awt/FontMetrics/TestLogicalFontMetrics.java:
New test.
Remove timer to ensure all tests are run.
Index: gnu/testlet/java/awt/FontMetrics/TestLogicalFontMetrics.java
===================================================================
RCS file: gnu/testlet/java/awt/FontMetrics/TestLogicalFontMetrics.java
diff -N gnu/testlet/java/awt/FontMetrics/TestLogicalFontMetrics.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/java/awt/FontMetrics/TestLogicalFontMetrics.java 16 Mar 2006 20:10:58 -0000
@@ -0,0 +1,1821 @@
+// Tags: GUI JDK1.0
+
+// Copyright (C) 2006 Red Hat
+
+// This file is part of Mauve.
+
+// Mauve is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// Mauve is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Mauve; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+package gnu.testlet.java.awt.FontMetrics;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.awt.*;
+import java.io.*;
+
+/**
+ * Test that the metrics returned for the six logical fonts are
+ * similar to those returned by Sun's implementation.
+ */
+public class TestLogicalFontMetrics implements Testlet
+{
+ BufferedWriter ascentsWriter;
+ BufferedWriter descentsWriter;
+ BufferedWriter leadingWriter;
+
+ final int NUM_SIZES = 40;
+ final int NUM_STYLES = 4;
+
+ final int TOLERANCE = 2;
+
+ // Set this to true to create ascents.txt, descents.txt and
+ // leading.txt for the five logical fonts in the four possible
+ // styles, in sizes 0 through NUM_SIZES - 1.
+ static final boolean GENERATE_METRICS_DATA = false;
+
+ int[] ascents;
+ int[] descents;
+ int[] leading;
+ String[] fontNames;
+
+ TestHarness harness;
+
+ int index = 0;
+
+ public void test (TestHarness h)
+ {
+ Frame f = new Frame ();
+
+ harness = h;
+
+ fontNames = new String[] { "Dialog", "DialogInput",
+ "Monospaced", "Serif", "SansSerif" };
+
+ // metrics data generated from previous runs against Sun
+ ascents = new int[]
+ {
+ // Dialog
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 18, 18, 18,
+ // size 19
+ 19, 19, 19, 19,
+ // size 20
+ 19, 20, 19, 20,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 35, 35, 35,
+ // size 37
+ 36, 36, 36, 36,
+ // size 38
+ 37, 37, 37, 37,
+ // size 39
+ 38, 38, 38, 38,
+ // DialogInput
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 17, 18, 17,
+ // size 19
+ 19, 18, 19, 18,
+ // size 20
+ 19, 19, 19, 19,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 34, 35, 34,
+ // size 37
+ 36, 35, 36, 35,
+ // size 38
+ 37, 36, 37, 36,
+ // size 39
+ 38, 37, 38, 37,
+ // Monospaced
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 17, 18, 17,
+ // size 19
+ 19, 18, 19, 18,
+ // size 20
+ 19, 19, 19, 19,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 34, 35, 34,
+ // size 37
+ 36, 35, 36, 35,
+ // size 38
+ 37, 36, 37, 36,
+ // size 39
+ 38, 37, 38, 37,
+ // Serif
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 18, 18, 18,
+ // size 19
+ 19, 19, 19, 19,
+ // size 20
+ 19, 19, 19, 19,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 35, 35, 35,
+ // size 37
+ 36, 36, 36, 36,
+ // size 38
+ 37, 37, 37, 37,
+ // size 39
+ 38, 38, 38, 38,
+ // SansSerif
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 18, 18, 18,
+ // size 19
+ 19, 19, 19, 19,
+ // size 20
+ 19, 20, 19, 20,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 35, 35, 35,
+ // size 37
+ 36, 36, 36, 36,
+ // size 38
+ 37, 37, 37, 37,
+ // size 39
+ 38, 38, 38, 38,
+ // Dialog
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 18, 18, 18,
+ // size 19
+ 19, 19, 19, 19,
+ // size 20
+ 19, 20, 19, 20,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 35, 35, 35,
+ // size 37
+ 36, 36, 36, 36,
+ // size 38
+ 37, 37, 37, 37,
+ // size 39
+ 38, 38, 38, 38,
+ // DialogInput
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 17, 18, 17,
+ // size 19
+ 19, 18, 19, 18,
+ // size 20
+ 19, 19, 19, 19,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 34, 35, 34,
+ // size 37
+ 36, 35, 36, 35,
+ // size 38
+ 37, 36, 37, 36,
+ // size 39
+ 38, 37, 38, 37,
+ // Monospaced
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 17, 18, 17,
+ // size 19
+ 19, 18, 19, 18,
+ // size 20
+ 19, 19, 19, 19,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 34, 35, 34,
+ // size 37
+ 36, 35, 36, 35,
+ // size 38
+ 37, 36, 37, 36,
+ // size 39
+ 38, 37, 38, 37,
+ // Serif
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 18, 18, 18,
+ // size 19
+ 19, 19, 19, 19,
+ // size 20
+ 19, 19, 19, 19,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 35, 35, 35,
+ // size 37
+ 36, 36, 36, 36,
+ // size 38
+ 37, 37, 37, 37,
+ // size 39
+ 38, 38, 38, 38,
+ // SansSerif
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 2, 2, 2, 2,
+ // size 3
+ 3, 3, 3, 3,
+ // size 4
+ 4, 4, 4, 4,
+ // size 5
+ 5, 5, 5, 5,
+ // size 6
+ 6, 6, 6, 6,
+ // size 7
+ 7, 7, 7, 7,
+ // size 8
+ 8, 8, 8, 8,
+ // size 9
+ 9, 9, 9, 9,
+ // size 10
+ 10, 10, 10, 10,
+ // size 11
+ 11, 11, 11, 11,
+ // size 12
+ 12, 12, 12, 12,
+ // size 13
+ 13, 13, 13, 13,
+ // size 14
+ 14, 14, 14, 14,
+ // size 15
+ 15, 15, 15, 15,
+ // size 16
+ 16, 16, 16, 16,
+ // size 17
+ 17, 17, 17, 17,
+ // size 18
+ 18, 18, 18, 18,
+ // size 19
+ 19, 19, 19, 19,
+ // size 20
+ 19, 20, 19, 20,
+ // size 21
+ 20, 20, 20, 20,
+ // size 22
+ 21, 21, 21, 21,
+ // size 23
+ 22, 22, 22, 22,
+ // size 24
+ 23, 23, 23, 23,
+ // size 25
+ 24, 24, 24, 24,
+ // size 26
+ 25, 25, 25, 25,
+ // size 27
+ 26, 26, 26, 26,
+ // size 28
+ 27, 27, 27, 27,
+ // size 29
+ 28, 28, 28, 28,
+ // size 30
+ 29, 29, 29, 29,
+ // size 31
+ 30, 30, 30, 30,
+ // size 32
+ 31, 31, 31, 31,
+ // size 33
+ 32, 32, 32, 32,
+ // size 34
+ 33, 33, 33, 33,
+ // size 35
+ 34, 34, 34, 34,
+ // size 36
+ 35, 35, 35, 35,
+ // size 37
+ 36, 36, 36, 36,
+ // size 38
+ 37, 37, 37, 37,
+ // size 39
+ 38, 38, 38, 38,
+ };
+
+ descents = new int[]
+ {
+ // Dialog
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 4, 5, 4,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 8, 9, 8,
+ // size 39
+ 9, 9, 9, 9,
+ // DialogInput
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 4, 5, 4,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 8, 9, 8,
+ // size 39
+ 9, 9, 9, 9,
+ // Monospaced
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 4, 5, 4,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 8, 9, 8,
+ // size 39
+ 9, 9, 9, 9,
+ // Serif
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 5, 5, 5,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 9, 9, 9,
+ // size 39
+ 9, 9, 9, 9,
+ // SansSerif
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 4, 5, 4,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 8, 9, 8,
+ // size 39
+ 9, 9, 9, 9,
+ // Dialog
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 4, 5, 4,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 8, 9, 8,
+ // size 39
+ 9, 9, 9, 9,
+ // DialogInput
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 4, 5, 4,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 8, 9, 8,
+ // size 39
+ 9, 9, 9, 9,
+ // Monospaced
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 4, 5, 4,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 8, 9, 8,
+ // size 39
+ 9, 9, 9, 9,
+ // Serif
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 5, 5, 5,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 9, 9, 9,
+ // size 39
+ 9, 9, 9, 9,
+ // SansSerif
+ // size 0
+ 0, 0, 0, 0,
+ // size 1
+ 1, 1, 1, 1,
+ // size 2
+ 1, 1, 1, 1,
+ // size 3
+ 1, 1, 1, 1,
+ // size 4
+ 1, 1, 1, 1,
+ // size 5
+ 2, 2, 2, 2,
+ // size 6
+ 2, 2, 2, 2,
+ // size 7
+ 2, 2, 2, 2,
+ // size 8
+ 2, 2, 2, 2,
+ // size 9
+ 2, 2, 2, 2,
+ // size 10
+ 3, 3, 3, 3,
+ // size 11
+ 3, 3, 3, 3,
+ // size 12
+ 3, 3, 3, 3,
+ // size 13
+ 3, 3, 3, 3,
+ // size 14
+ 3, 3, 3, 3,
+ // size 15
+ 4, 4, 4, 4,
+ // size 16
+ 4, 4, 4, 4,
+ // size 17
+ 4, 4, 4, 4,
+ // size 18
+ 4, 4, 4, 4,
+ // size 19
+ 5, 4, 5, 4,
+ // size 20
+ 5, 5, 5, 5,
+ // size 21
+ 5, 5, 5, 5,
+ // size 22
+ 5, 5, 5, 5,
+ // size 23
+ 5, 5, 5, 5,
+ // size 24
+ 6, 6, 6, 6,
+ // size 25
+ 6, 6, 6, 6,
+ // size 26
+ 6, 6, 6, 6,
+ // size 27
+ 6, 6, 6, 6,
+ // size 28
+ 6, 6, 6, 6,
+ // size 29
+ 7, 7, 7, 7,
+ // size 30
+ 7, 7, 7, 7,
+ // size 31
+ 7, 7, 7, 7,
+ // size 32
+ 7, 7, 7, 7,
+ // size 33
+ 7, 7, 7, 7,
+ // size 34
+ 8, 8, 8, 8,
+ // size 35
+ 8, 8, 8, 8,
+ // size 36
+ 8, 8, 8, 8,
+ // size 37
+ 8, 8, 8, 8,
+ // size 38
+ 9, 8, 9, 8,
+ // size 39
+ 9, 9, 9, 9,
+ };
+
+ if (GENERATE_METRICS_DATA)
+ {
+ try
+ {
+ ascentsWriter = new BufferedWriter (new FileWriter (new File ("ascents.txt")));
+ descentsWriter = new BufferedWriter (new FileWriter (new File ("descents.txt")));
+ leadingWriter = new BufferedWriter (new FileWriter (new File ("leading.txt")));
+ }
+ catch (IOException e)
+ {
+ System.err.println ("error creating output files.");
+ }
+ }
+
+ Panel p = new Panel()
+ {
+ public void paint (Graphics g)
+ {
+ for (int i = 0; i < fontNames.length; i++)
+ {
+ outputMetrics ("// " + fontNames[i] + "\n",
+ "// " + fontNames[i] + "\n",
+ "// " + fontNames[i] + "\n");
+
+ for (int j = 0; j < NUM_SIZES; j++)
+ {
+ outputMetrics ("// size " + j + "\n",
+ "// size " + j + "\n",
+ "// size " + j + "\n");
+
+ index = i * NUM_SIZES * NUM_STYLES + j * NUM_STYLES;
+
+ // PLAIN
+ g.setFont(new Font (fontNames[i], Font.PLAIN, j));
+ checkMetrics (g, fontNames[i], "PLAIN", j, index);
+
+ index++;
+
+ // BOLD
+ g.setFont(new Font (fontNames[i], Font.BOLD, j));
+ checkMetrics (g, fontNames[i], "BOLD", j, index);
+
+ index++;
+
+ // ITALIC
+ g.setFont(new Font (fontNames[i], Font.ITALIC, j));
+ checkMetrics (g, fontNames[i], "ITALIC", j, index);
+
+ index++;
+
+ // BOLD + ITALIC
+ g.setFont(new Font (fontNames[i], Font.BOLD | Font.ITALIC, j));
+ checkMetrics (g, fontNames[i], "BOLD + ITALIC", j, index);
+
+ outputMetrics ("\n", "\n", "\n");
+ }
+ }
+ }
+ };
+ p.setBackground(Color.blue);
+ Robot r = harness.createRobot ();
+
+ f.setSize(300, 100);
+ f.add(p);
+
+ f.show();
+
+ r.delay (3000);
+
+ if (GENERATE_METRICS_DATA)
+ {
+ try
+ {
+ if (ascentsWriter != null)
+ ascentsWriter.close();
+ if (descentsWriter != null)
+ descentsWriter.close();
+ if (leadingWriter != null)
+ leadingWriter.close();
+ }
+ catch (IOException e)
+ {
+ System.err.println ("error closing output files.");
+ }
+ }
+ }
+
+ public void outputMetrics (String ascentString, String descentString, String leadingString)
+ {
+ if (GENERATE_METRICS_DATA)
+ {
+ try
+ {
+ ascentsWriter.write(ascentString);
+ descentsWriter.write(descentString);
+ leadingWriter.write(leadingString);
+ }
+ catch (IOException e)
+ {
+ System.err.println ("error writing to output files.");
+ }
+ }
+ }
+
+ public void checkMetrics (Graphics g, String name, String style, int size, int index)
+ {
+ FontMetrics f = g.getFontMetrics();
+
+ outputMetrics (f.getAscent() + ", ",
+ f.getDescent() + ", ",
+ f.getLeading() + ", ");
+
+ int ascent = f.getAscent();
+ if (ascent < ascents[index] - TOLERANCE || ascent > ascents[index] + TOLERANCE)
+ harness.fail ("ascent: " + name + " " + style + " " + size);
+
+ int descent = f.getDescent();
+ if (descent < descents[index] - TOLERANCE || descent > descents[index] + TOLERANCE)
+ harness.fail ("descent: " + name + " " + style + " " + size);
+
+ // Leading is always 0.
+ if (f.getLeading() != 0)
+ harness.fail ("leading: " + name + " " + style + " " + size);
+ }
+}
Index: gnu/testlet/java/awt/FontMetrics/TestLogicalFontMetrics.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/FontMetrics/TestLogicalFontMetrics.java,v
retrieving revision 1.1
diff -u -r1.1 TestLogicalFontMetrics.java
--- gnu/testlet/java/awt/FontMetrics/TestLogicalFontMetrics.java 16 Mar 2006 20:11:22 -0000 1.1
+++ gnu/testlet/java/awt/FontMetrics/TestLogicalFontMetrics.java 16 Mar 2006 20:51:46 -0000
@@ -54,6 +54,8 @@
TestHarness harness;
+ boolean paintedOnce = false;
+
int index = 0;
public void test (TestHarness h)
@@ -1712,56 +1714,68 @@
{
public void paint (Graphics g)
{
- for (int i = 0; i < fontNames.length; i++)
+ if (!paintedOnce)
{
- outputMetrics ("// " + fontNames[i] + "\n",
- "// " + fontNames[i] + "\n",
- "// " + fontNames[i] + "\n");
-
- for (int j = 0; j < NUM_SIZES; j++)
+ for (int i = 0; i < fontNames.length; i++)
{
- outputMetrics ("// size " + j + "\n",
- "// size " + j + "\n",
- "// size " + j + "\n");
+ outputMetrics ("// " + fontNames[i] + "\n",
+ "// " + fontNames[i] + "\n",
+ "// " + fontNames[i] + "\n");
+
+ for (int j = 0; j < NUM_SIZES; j++)
+ {
+ outputMetrics ("// size " + j + "\n",
+ "// size " + j + "\n",
+ "// size " + j + "\n");
- index = i * NUM_SIZES * NUM_STYLES + j * NUM_STYLES;
+ index = i * NUM_SIZES * NUM_STYLES + j * NUM_STYLES;
- // PLAIN
- g.setFont(new Font (fontNames[i], Font.PLAIN, j));
- checkMetrics (g, fontNames[i], "PLAIN", j, index);
+ // PLAIN
+ g.setFont(new Font (fontNames[i], Font.PLAIN, j));
+ checkMetrics (g, fontNames[i], "PLAIN", j, index);
- index++;
+ index++;
- // BOLD
- g.setFont(new Font (fontNames[i], Font.BOLD, j));
- checkMetrics (g, fontNames[i], "BOLD", j, index);
+ // BOLD
+ g.setFont(new Font (fontNames[i], Font.BOLD, j));
+ checkMetrics (g, fontNames[i], "BOLD", j, index);
- index++;
+ index++;
- // ITALIC
- g.setFont(new Font (fontNames[i], Font.ITALIC, j));
- checkMetrics (g, fontNames[i], "ITALIC", j, index);
+ // ITALIC
+ g.setFont(new Font (fontNames[i], Font.ITALIC, j));
+ checkMetrics (g, fontNames[i], "ITALIC", j, index);
- index++;
+ index++;
- // BOLD + ITALIC
- g.setFont(new Font (fontNames[i], Font.BOLD | Font.ITALIC, j));
- checkMetrics (g, fontNames[i], "BOLD + ITALIC", j, index);
+ // BOLD + ITALIC
+ g.setFont(new Font (fontNames[i], Font.BOLD | Font.ITALIC, j));
+ checkMetrics (g, fontNames[i], "BOLD + ITALIC", j, index);
- outputMetrics ("\n", "\n", "\n");
+ outputMetrics ("\n", "\n", "\n");
+ }
}
+ paintedOnce = true;
}
}
};
p.setBackground(Color.blue);
- Robot r = harness.createRobot ();
f.setSize(300, 100);
f.add(p);
f.show();
- r.delay (3000);
+ while (!paintedOnce)
+ {
+ try
+ {
+ java.lang.Thread.sleep (2000);
+ }
+ catch (java.lang.InterruptedException e)
+ {
+ }
+ }
if (GENERATE_METRICS_DATA)
{
@@ -1808,14 +1822,18 @@
int ascent = f.getAscent();
if (ascent < ascents[index] - TOLERANCE || ascent > ascents[index] + TOLERANCE)
- harness.fail ("ascent: " + name + " " + style + " " + size);
+ harness.fail ("ascent: " + name + " " + style + " " + size
+ + " expected: " + ascents[index] + " got: " + ascent);
int descent = f.getDescent();
if (descent < descents[index] - TOLERANCE || descent > descents[index] + TOLERANCE)
- harness.fail ("descent: " + name + " " + style + " " + size);
+ harness.fail ("descent: " + name + " " + style + " " + size
+ + " expected: " + descents[index] + " got: " + descent);
+ int leading = f.getLeading();
// Leading is always 0.
- if (f.getLeading() != 0)
- harness.fail ("leading: " + name + " " + style + " " + size);
+ if (leading != 0)
+ harness.fail ("leading: " + name + " " + style + " " + size
+ + " expected: 0 got: " + leading);
}
}