Merge "Move graphicstests to coretests"

This commit is contained in:
Sergey Vasilinets
2017-03-01 19:20:54 +00:00
committed by Android (Google) Code Review
26 changed files with 232 additions and 328 deletions

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 707 B

After

Width:  |  Height:  |  Size: 707 B

View File

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -23,4 +23,7 @@
<drawable name="blue">#ff0000ff</drawable>
<drawable name="green">#ff00ff00</drawable>
<drawable name="yellow">#ffffff00</drawable>
<color name="testcolor1">#ff00ff00</color>
<color name="testcolor2">#ffff0000</color>
<color name="failColor">#ff0000ff</color>
</resources>

View File

@@ -19,11 +19,11 @@ package android.graphics;
import android.os.ParcelFileDescriptor;
import android.test.suitebuilder.annotation.SmallTest;
import junit.framework.TestCase;
import java.io.ByteArrayOutputStream;
import java.io.FileDescriptor;
import junit.framework.TestCase;
public class BitmapFactoryTest extends TestCase {

View File

@@ -17,6 +17,7 @@
package android.graphics;
import android.test.suitebuilder.annotation.SmallTest;
import junit.framework.TestCase;

View File

@@ -16,13 +16,13 @@
package android.graphics;
import com.android.frameworks.graphicstests.R;
import android.content.res.Resources;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import com.android.frameworks.coretests.R;
/**
* Tests of {@link android.graphics.ColorStateList}
*/

View File

@@ -16,19 +16,15 @@
package android.graphics;
import junit.framework.Assert;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.test.AndroidTestCase;
import android.test.PerformanceTestCase;
import android.test.suitebuilder.annotation.Suppress;
import android.util.Log;
import com.android.frameworks.graphicstests.R;
import com.android.frameworks.coretests.R;
import junit.framework.Assert;
/**
* Graphics Performance Tests

View File

@@ -156,4 +156,213 @@ public class PaintTest extends InstrumentationTestCase {
}
}
}
public void testGetTextRunAdvances() {
{
// LTR
String text = "abcdef";
assertGetTextRunAdvances(text, 0, text.length(), 0, text.length(), false, true);
assertGetTextRunAdvances(text, 1, text.length() - 1, 0, text.length(), false, false);
}
{
// RTL
final String text =
"\u0645\u0627\u0020\u0647\u064A\u0020\u0627\u0644\u0634" +
"\u0641\u0631\u0629\u0020\u0627\u0644\u0645\u0648\u062D" +
"\u062F\u0629\u0020\u064A\u0648\u0646\u064A\u0643\u0648" +
"\u062F\u061F";
assertGetTextRunAdvances(text, 0, text.length(), 0, text.length(), true, true);
assertGetTextRunAdvances(text, 1, text.length() - 1, 0, text.length(), true, false);
}
}
private void assertGetTextRunAdvances(String str, int start, int end,
int contextStart, int contextEnd, boolean isRtl, boolean compareWithOtherMethods) {
Paint p = new Paint();
final int count = end - start;
final float[][] advanceArrays = new float[4][count];
final float advance = p.getTextRunAdvances(str, start, end, contextStart, contextEnd,
isRtl, advanceArrays[0], 0);
char chars[] = str.toCharArray();
final float advance_c = p.getTextRunAdvances(chars, start, count, contextStart,
contextEnd - contextStart, isRtl, advanceArrays[1], 0);
assertEquals(advance, advance_c, 1.0f);
for (int c = 1; c < count; ++c) {
final float firstPartAdvance = p.getTextRunAdvances(str, start, start + c,
contextStart, contextEnd, isRtl, advanceArrays[2], 0);
final float secondPartAdvance = p.getTextRunAdvances(str, start + c, end,
contextStart, contextEnd, isRtl, advanceArrays[2], c);
assertEquals(advance, firstPartAdvance + secondPartAdvance, 1.0f);
final float firstPartAdvance_c = p.getTextRunAdvances(chars, start, c,
contextStart, contextEnd - contextStart, isRtl, advanceArrays[3], 0);
final float secondPartAdvance_c = p.getTextRunAdvances(chars, start + c,
count - c, contextStart, contextEnd - contextStart, isRtl,
advanceArrays[3], c);
assertEquals(advance, firstPartAdvance_c + secondPartAdvance_c, 1.0f);
assertEquals(firstPartAdvance, firstPartAdvance_c, 1.0f);
assertEquals(secondPartAdvance, secondPartAdvance_c, 1.0f);
for (int i = 1; i < advanceArrays.length; i++) {
for (int j = 0; j < count; j++) {
assertEquals(advanceArrays[0][j], advanceArrays[i][j], 1.0f);
}
}
// Compare results with measureText, getRunAdvance, and getTextWidths.
if (compareWithOtherMethods && start == contextStart && end == contextEnd) {
assertEquals(advance, p.measureText(str, start, end), 1.0f);
assertEquals(advance, p.getRunAdvance(
str, start, end, contextStart, contextEnd, isRtl, end), 1.0f);
final float[] widths = new float[count];
p.getTextWidths(str, start, end, widths);
for (int i = 0; i < count; i++) {
assertEquals(advanceArrays[0][i], widths[i], 1.0f);
}
}
}
}
public void testGetTextRunAdvances_invalid() {
Paint p = new Paint();
String text = "test";
try {
p.getTextRunAdvances((String)null, 0, 0, 0, 0, false, null, 0);
fail("Should throw an IllegalArgumentException.");
} catch (IllegalArgumentException e) {
}
try {
p.getTextRunAdvances((CharSequence)null, 0, 0, 0, 0, false, null, 0);
fail("Should throw an IllegalArgumentException.");
} catch (IllegalArgumentException e) {
}
try {
p.getTextRunAdvances((char[])null, 0, 0, 0, 0, false, null, 0);
fail("Should throw an IllegalArgumentException.");
} catch (IllegalArgumentException e) {
}
try {
p.getTextRunAdvances(text, 0, text.length(), 0, text.length(), false,
new float[text.length() - 1], 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
try {
p.getTextRunAdvances(text, 0, text.length(), 0, text.length(), false,
new float[text.length()], 1);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// 0 > contextStart
try {
p.getTextRunAdvances(text, 0, text.length(), -1, text.length(), false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// contextStart > start
try {
p.getTextRunAdvances(text, 0, text.length(), 1, text.length(), false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// start > end
try {
p.getTextRunAdvances(text, 1, 0, 0, text.length(), false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// end > contextEnd
try {
p.getTextRunAdvances(text, 0, text.length(), 0, text.length() - 1, false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// contextEnd > text.length
try {
p.getTextRunAdvances(text, 0, text.length(), 0, text.length() + 1, false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
}
public void testMeasureTextBidi() {
Paint p = new Paint();
{
String bidiText = "abc \u0644\u063A\u0629 def";
p.setBidiFlags(Paint.BIDI_LTR);
float width = p.measureText(bidiText, 0, 4);
p.setBidiFlags(Paint.BIDI_RTL);
width += p.measureText(bidiText, 4, 7);
p.setBidiFlags(Paint.BIDI_LTR);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "abc \u0644\u063A\u0629 def";
p.setBidiFlags(Paint.BIDI_DEFAULT_LTR);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "abc \u0644\u063A\u0629 def";
p.setBidiFlags(Paint.BIDI_FORCE_LTR);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "\u0644\u063A\u0629 abc \u0644\u063A\u0629";
p.setBidiFlags(Paint.BIDI_RTL);
float width = p.measureText(bidiText, 0, 4);
p.setBidiFlags(Paint.BIDI_LTR);
width += p.measureText(bidiText, 4, 7);
p.setBidiFlags(Paint.BIDI_RTL);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "\u0644\u063A\u0629 abc \u0644\u063A\u0629";
p.setBidiFlags(Paint.BIDI_DEFAULT_RTL);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "\u0644\u063A\u0629 abc \u0644\u063A\u0629";
p.setBidiFlags(Paint.BIDI_FORCE_RTL);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
}
public void testSetGetWordSpacing() {
Paint p = new Paint();
assertEquals(0.0f, p.getWordSpacing()); // The default value should be 0.
p.setWordSpacing(1.0f);
assertEquals(1.0f, p.getWordSpacing());
p.setWordSpacing(-2.0f);
assertEquals(-2.0f, p.getWordSpacing());
}
}

View File

@@ -17,6 +17,7 @@
package android.graphics;
import android.test.suitebuilder.annotation.SmallTest;
import junit.framework.TestCase;

View File

@@ -16,10 +16,10 @@
package android.graphics;
import junit.framework.TestCase;
import android.graphics.Bitmap;
import android.test.suitebuilder.annotation.LargeTest;
import junit.framework.TestCase;
public class ThreadBitmapTest extends TestCase {
@Override

View File

@@ -18,9 +18,11 @@ package android.graphics;
import android.test.suitebuilder.annotation.SmallTest;
import android.text.FontConfig;
import java.util.List;
import junit.framework.TestCase;
import java.util.List;
public class VariationParserTest extends TestCase {

View File

@@ -26,14 +26,13 @@ import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import android.util.Log;
import com.android.frameworks.coretests.R;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.lang.Override;
import java.util.Arrays;
import java.util.ArrayList;
import com.android.frameworks.graphicstests.R;
import java.util.Arrays;
public class IconTest extends AndroidTestCase {
public static final String TAG = IconTest.class.getSimpleName();

View File

@@ -16,14 +16,14 @@
package android.graphics.drawable;
import junit.framework.TestCase;
import android.R;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.util.StateSet;
import android.view.MockView;
import junit.framework.TestCase;
/**
* Tests for StateListDrawable
*

View File

@@ -1,15 +0,0 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
# We only want this apk build for tests.
LOCAL_MODULE_TAGS := tests
# Include all test java files.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_JAVA_LIBRARIES := android.test.runner
LOCAL_STATIC_JAVA_LIBRARIES := junit legacy-android-test
LOCAL_PACKAGE_NAME := FrameworksGraphicsTests
include $(BUILD_PACKAGE)

View File

@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.frameworks.graphicstests">
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.android.frameworks.graphicstests"
android:label="Frameworks Graphics Tests" />
</manifest>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2006, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<resources>
<color name="testcolor1">#ff00ff00</color>
<color name="testcolor2">#ffff0000</color>
<color name="failColor">#ff0000ff</color>
</resources>

View File

@@ -1,230 +0,0 @@
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.graphics;
import android.test.AndroidTestCase;
public class PaintTest extends AndroidTestCase {
public void testGetTextRunAdvances() {
{
// LTR
String text = "abcdef";
assertGetTextRunAdvances(text, 0, text.length(), 0, text.length(), false, true);
assertGetTextRunAdvances(text, 1, text.length() - 1, 0, text.length(), false, false);
}
{
// RTL
final String text =
"\u0645\u0627\u0020\u0647\u064A\u0020\u0627\u0644\u0634" +
"\u0641\u0631\u0629\u0020\u0627\u0644\u0645\u0648\u062D" +
"\u062F\u0629\u0020\u064A\u0648\u0646\u064A\u0643\u0648" +
"\u062F\u061F";
assertGetTextRunAdvances(text, 0, text.length(), 0, text.length(), true, true);
assertGetTextRunAdvances(text, 1, text.length() - 1, 0, text.length(), true, false);
}
}
private void assertGetTextRunAdvances(String str, int start, int end,
int contextStart, int contextEnd, boolean isRtl, boolean compareWithOtherMethods) {
Paint p = new Paint();
final int count = end - start;
final float[][] advanceArrays = new float[4][count];
final float advance = p.getTextRunAdvances(str, start, end, contextStart, contextEnd,
isRtl, advanceArrays[0], 0);
char chars[] = str.toCharArray();
final float advance_c = p.getTextRunAdvances(chars, start, count, contextStart,
contextEnd - contextStart, isRtl, advanceArrays[1], 0);
assertEquals(advance, advance_c, 1.0f);
for (int c = 1; c < count; ++c) {
final float firstPartAdvance = p.getTextRunAdvances(str, start, start + c,
contextStart, contextEnd, isRtl, advanceArrays[2], 0);
final float secondPartAdvance = p.getTextRunAdvances(str, start + c, end,
contextStart, contextEnd, isRtl, advanceArrays[2], c);
assertEquals(advance, firstPartAdvance + secondPartAdvance, 1.0f);
final float firstPartAdvance_c = p.getTextRunAdvances(chars, start, c,
contextStart, contextEnd - contextStart, isRtl, advanceArrays[3], 0);
final float secondPartAdvance_c = p.getTextRunAdvances(chars, start + c,
count - c, contextStart, contextEnd - contextStart, isRtl,
advanceArrays[3], c);
assertEquals(advance, firstPartAdvance_c + secondPartAdvance_c, 1.0f);
assertEquals(firstPartAdvance, firstPartAdvance_c, 1.0f);
assertEquals(secondPartAdvance, secondPartAdvance_c, 1.0f);
for (int i = 1; i < advanceArrays.length; i++) {
for (int j = 0; j < count; j++) {
assertEquals(advanceArrays[0][j], advanceArrays[i][j], 1.0f);
}
}
// Compare results with measureText, getRunAdvance, and getTextWidths.
if (compareWithOtherMethods && start == contextStart && end == contextEnd) {
assertEquals(advance, p.measureText(str, start, end), 1.0f);
assertEquals(advance, p.getRunAdvance(
str, start, end, contextStart, contextEnd, isRtl, end), 1.0f);
final float[] widths = new float[count];
p.getTextWidths(str, start, end, widths);
for (int i = 0; i < count; i++) {
assertEquals(advanceArrays[0][i], widths[i], 1.0f);
}
}
}
}
public void testGetTextRunAdvances_invalid() {
Paint p = new Paint();
String text = "test";
try {
p.getTextRunAdvances((String)null, 0, 0, 0, 0, false, null, 0);
fail("Should throw an IllegalArgumentException.");
} catch (IllegalArgumentException e) {
}
try {
p.getTextRunAdvances((CharSequence)null, 0, 0, 0, 0, false, null, 0);
fail("Should throw an IllegalArgumentException.");
} catch (IllegalArgumentException e) {
}
try {
p.getTextRunAdvances((char[])null, 0, 0, 0, 0, false, null, 0);
fail("Should throw an IllegalArgumentException.");
} catch (IllegalArgumentException e) {
}
try {
p.getTextRunAdvances(text, 0, text.length(), 0, text.length(), false,
new float[text.length() - 1], 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
try {
p.getTextRunAdvances(text, 0, text.length(), 0, text.length(), false,
new float[text.length()], 1);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// 0 > contextStart
try {
p.getTextRunAdvances(text, 0, text.length(), -1, text.length(), false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// contextStart > start
try {
p.getTextRunAdvances(text, 0, text.length(), 1, text.length(), false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// start > end
try {
p.getTextRunAdvances(text, 1, 0, 0, text.length(), false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// end > contextEnd
try {
p.getTextRunAdvances(text, 0, text.length(), 0, text.length() - 1, false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
// contextEnd > text.length
try {
p.getTextRunAdvances(text, 0, text.length(), 0, text.length() + 1, false, null, 0);
fail("Should throw an IndexOutOfBoundsException.");
} catch (IndexOutOfBoundsException e) {
}
}
public void testMeasureTextBidi() {
Paint p = new Paint();
{
String bidiText = "abc \u0644\u063A\u0629 def";
p.setBidiFlags(Paint.BIDI_LTR);
float width = p.measureText(bidiText, 0, 4);
p.setBidiFlags(Paint.BIDI_RTL);
width += p.measureText(bidiText, 4, 7);
p.setBidiFlags(Paint.BIDI_LTR);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "abc \u0644\u063A\u0629 def";
p.setBidiFlags(Paint.BIDI_DEFAULT_LTR);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "abc \u0644\u063A\u0629 def";
p.setBidiFlags(Paint.BIDI_FORCE_LTR);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "\u0644\u063A\u0629 abc \u0644\u063A\u0629";
p.setBidiFlags(Paint.BIDI_RTL);
float width = p.measureText(bidiText, 0, 4);
p.setBidiFlags(Paint.BIDI_LTR);
width += p.measureText(bidiText, 4, 7);
p.setBidiFlags(Paint.BIDI_RTL);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "\u0644\u063A\u0629 abc \u0644\u063A\u0629";
p.setBidiFlags(Paint.BIDI_DEFAULT_RTL);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "\u0644\u063A\u0629 abc \u0644\u063A\u0629";
p.setBidiFlags(Paint.BIDI_FORCE_RTL);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
}
public void testSetGetWordSpacing() {
Paint p = new Paint();
assertEquals(0.0f, p.getWordSpacing()); // The default value should be 0.
p.setWordSpacing(1.0f);
assertEquals(1.0f, p.getWordSpacing());
p.setWordSpacing(-2.0f);
assertEquals(-2.0f, p.getWordSpacing());
}
}