1 /******************************************************************************* 2 * Copyright (c) 2010, 2011 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 ******************************************************************************/ 14 15 package org.eclipse.equinox.bidi.internal.tests; 16 17 /** 18 * Base functionality for the handler tests. 19 */ 20 public class StructuredTextTestBase { 21 22 static final private char LRM = 0x200E; 23 24 static final private char RLM = 0x200F; 25 26 static final private char LRE = 0x202A; 27 28 static final private char RLE = 0x202B; 29 30 static final private char PDF = 0x202C; 31 toPseudo(String text)32 public static String toPseudo(String text) { 33 char[] chars = text.toCharArray(); 34 int len = chars.length; 35 36 for (int i = 0; i < len; i++) { 37 char c = chars[i]; 38 if (c >= 'A' && c <= 'Z') 39 chars[i] = (char) (c + 'a' - 'A'); 40 else if (c >= 0x05D0 && c < 0x05EA) 41 chars[i] = (char) (c + 'A' - 0x05D0); 42 else if (c == 0x05EA) 43 chars[i] = '~'; 44 else if (c == 0x0644) 45 chars[i] = '#'; 46 else if (c >= 0x0665 && c <= 0x0669) 47 chars[i] = (char) (c + '5' - 0x0665); 48 else if (c == LRM) 49 chars[i] = '@'; 50 else if (c == RLM) 51 chars[i] = '&'; 52 else if (c == LRE) 53 chars[i] = '>'; 54 else if (c == RLE) 55 chars[i] = '<'; 56 else if (c == PDF) 57 chars[i] = '^'; 58 else if (c == '\n') 59 chars[i] = '|'; 60 else if (c == '\r') 61 chars[i] = '`'; 62 } 63 return new String(chars); 64 } 65 toUT16(String text)66 public static String toUT16(String text) { 67 char[] chars = text.toCharArray(); 68 int len = chars.length; 69 70 for (int i = 0; i < len; i++) { 71 char c = chars[i]; 72 if (c >= '5' && c <= '9') 73 chars[i] = (char) (0x0665 + c - '5'); 74 else if (c >= 'A' && c <= 'Z') 75 chars[i] = (char) (0x05D0 + c - 'A'); 76 else if (c == '~') 77 chars[i] = (char) (0x05EA); 78 else if (c == '#') 79 chars[i] = (char) (0x0644); 80 else if (c == '@') 81 chars[i] = LRM; 82 else if (c == '&') 83 chars[i] = RLM; 84 else if (c == '>') 85 chars[i] = LRE; 86 else if (c == '<') 87 chars[i] = RLE; 88 else if (c == '^') 89 chars[i] = PDF; 90 else if (c == '|') 91 chars[i] = '\n'; 92 else if (c == '`') 93 chars[i] = '\r'; 94 } 95 return new String(chars); 96 } 97 array_display(int[] array)98 static String array_display(int[] array) { 99 if (array == null) { 100 return "null"; 101 } 102 StringBuilder sb = new StringBuilder(50); 103 int len = array.length; 104 for (int i = 0; i < len; i++) { 105 sb.append(array[i]); 106 sb.append(' '); 107 } 108 return sb.toString(); 109 } 110 111 } 112