Java tutorial
/* * Copyright (C) 2011 Laurent Caillette * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation, either * version 3 of the License, or (at your option) any later version. * * This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */ package org.novelang.parser.unicode; import org.apache.commons.lang.CharUtils; import org.junit.Test; import static org.junit.Assert.assertEquals; import org.novelang.logger.Logger; import org.novelang.logger.LoggerFactory; import org.novelang.outfit.TextTools; /** * Tests for {@link UnicodeNames} basing on some well-known values. * * @author Laurent Caillette */ public class UnicodeNamesTest { @Test public void logSomeBasicCharacterRepresentations() { final int aCharacterAsInt = 'a'; final String aCharacterAsHex = TextTools.to16ByteHex(aCharacterAsInt); LOGGER.info("\nThe 'a' letter", "\nAs int: ", aCharacterAsInt, "\nAs hex: ", aCharacterAsHex, "\nUnicode escaped: ", CharUtils.unicodeEscaped('a')); } @Test public void unicode16NameHasSpaces() { verify("LATIN_SMALL_LETTER_A", 'a'); } @Test public void unicode16NameHasNoSpace() { verify("DIAERESIS", '\u00a8'); } @Test public void unicode16NameHasHyphen() { verify("RIGHT-POINTING_DOUBLE_ANGLE_QUOTATION_MARK", '\u00bb'); } @Test public void unicode16NameIsControl1() { verify("ESCAPE", '\u001b'); } @Test public void unicode16NameIsControl2() { verify("CHARACTER_TABULATION", '\t'); } @Test public void lastKnownValue() { verify("REPLACEMENT_CHARACTER", (char) 0xFFFD); } @Test public void smokeTestOnEveryCharacter() { final int totalCharacterCount = 256 * 256; for (int counter = totalCharacterCount - 256; counter < totalCharacterCount; counter++) { final char character = (char) counter; UnicodeNames.getPureName(character); } } // ======= // Fixture // ======= private static final Logger LOGGER = LoggerFactory.getLogger(UnicodeNamesTest.class); private static void verify(final String expected, final char character) { assertEquals(expected, UnicodeNames.getPureName(character)); } }