📄 formatprivatetest.java
字号:
package net.sf.fmj.test.compat.formats;import java.awt.Dimension;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import javax.media.Format;import javax.media.format.AudioFormat;import javax.media.format.RGBFormat;import javax.media.format.YUVFormat;import junit.framework.TestCase;/** * * @author Ken Larson * */public class FormatPrivateTest extends TestCase{ public void testFormat() throws Exception { final Format value = new Format("abc"); assertEquals(getEncodingCode(value), 0L); assertTrue(value.isSameEncoding(value)); assertEquals(getEncodingCode(value), 0L); assertTrue(value.isSameEncoding(new Format("abc"))); assertEquals(value.getEncoding(), "abc"); assertEquals(getEncodingCode(value), 0L); assertEquals(value.matches(new Format("abc")), true); assertEquals(getEncodingCode(value), 0L); //System.out.println(getEncodingCode(value, "abc")); assertEquals(getEncodingCode(value, ""), 0L); assertEquals(getEncodingCode(value, "a"), 33L); assertEquals(getEncodingCode(value, "b"), 34L); for (int i = 'a'; i <= 'z'; ++i) { String test = "!z" + (char) i; testEncodingCode(test); } for (int i = 'A'; i <= 'Z'; ++i) { String test = "!z" + (char) i; testEncodingCode(test); } testEncodingCode("abc"); testEncodingCode("foo.bar"); testEncodingCode("foo/bar"); testEncodingCode("foo_bar"); //gen(); // clz: testClz(new RGBFormat()); testClz(new RGBFormat(new Dimension(1, 2), 1000, byte[].class, 1.f, 8, 0xff, 0x00ff, 0x0000ff)); for (int i = 0; i < SerializableTest.formats.length; ++i) { final Format f = SerializableTest.formats[i]; testClz(f); } } public void testClz(Format f) throws Exception { assertEquals(getClz(f), f.getClass()); } public void testEncodingCode(String s) throws Exception { final Format value = new Format("abc"); if (getEncodingCode(value, s) != stringEncodingCodeVal(s)) { System.out.println(s + ": " + getEncodingCode(value, s) + "!=" + stringEncodingCodeVal(s)); assertTrue(false); } } void gen() throws Exception { final Format value = new Format("abc"); for (int i = 0; i <= 255; ++i) { System.out.println("m.put((char) " + i + ", " + getEncodingCode(value, "" + (char) i) + ");"); } } // utilities for Format.getEncodingCode private long stringEncodingCodeVal(String s) { long result = 0; for (int i = 0; i < s.length(); ++i) { final char c = s.charAt(i); result *= 64; result += charEncodingCodeVal(c); } return result; } private int charEncodingCodeVal(char c) { if (c <= (char) 95) return c - 32; if (c == 96) return -1; if (c <= 122) return c - 64; if (c <= 127) return -1; if (c <= 191) return -94; if (c <= 255) return -93; return -1; } public void testYUVFormat_ENCODING() throws Exception { assertEquals(new YUVFormat().getEncoding(), "yuv"); final Field f = YUVFormat.class.getDeclaredField("ENCODING"); f.setAccessible(true); assertEquals((String) f.get(null), "yuv"); } public void testAudioFormat() throws Exception { AudioFormat format = new AudioFormat("abc"); { final Field f = AudioFormat.class.getDeclaredField("multiplier"); f.setAccessible(true); assertEquals((Double) f.get(format), new Double(-1.0)); } { final Field f = AudioFormat.class.getDeclaredField("margin"); f.setAccessible(true); assertEquals(((Integer) f.get(format)).intValue(), 0); } { final Field f = AudioFormat.class.getDeclaredField("init"); f.setAccessible(true); assertEquals(((Boolean) f.get(format)).booleanValue(), false); } } public static long getEncodingCode(Format value, String s) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { final Method m = Format.class.getDeclaredMethod("getEncodingCode", new Class[]{String.class}); m.setAccessible(true); final Long result = (Long) m.invoke(value, new Object[] {s}); return result.longValue(); } public static long getEncodingCode(Format value) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { final Field f = Format.class.getDeclaredField("encodingCode"); f.setAccessible(true); return ((Long) f.get(value)).longValue(); } private static Class getClz(Format value) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { final Field f = Format.class.getDeclaredField("clz"); f.setAccessible(true); return (Class) f.get(value); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -