📄 basiccodectest.java
字号:
package net.sf.fmj.test.compat.sun;import javax.media.Buffer;import javax.media.Format;import javax.media.ResourceUnavailableException;import javax.media.format.RGBFormat;import javax.media.format.YUVFormat;import net.sf.fmj.test.tracing.TracingBuffer;import net.sf.fmj.test.tracing.TracingFormat;import junit.framework.TestCase;import com.sun.media.BasicCodec;/** * * @author Ken Larson * */public class BasicCodecTest extends TestCase{ public void testIOFormats1() { final MyBasicCodec c = new MyBasicCodec(); assertEquals(c.doGetInputFormat(), null); assertEquals(c.doGetOutputFormat(), null); { final Format f1 = new Format("abc"); final Format f1res = c.setInputFormat(f1); assertTrue(f1 == f1res); assertTrue(c.doGetInputFormat() == f1); assertEquals(c.doGetOutputFormat(), null); final Format f2 = new Format("xyz"); final Format f2res = c.setOutputFormat(f2); assertTrue(f2 == f2res); assertTrue(c.doGetInputFormat() == f1); assertTrue(c.doGetOutputFormat() == f2); } } public void testIOFormats2() { final MyBasicCodec c = new MyBasicCodec(); // TODO: any checking against supported i/o formats? // TODO: any checking against getSupportedOutputFormats - does not appear to call. assertTrue(c.getSupportedInputFormats().length == 0); assertTrue(c.getOutputFormats().length == 0); final Format[] fs = new Format[]{ new Format("abcd") }; c.setOutputFormats(fs); assertTrue(c.getOutputFormats() == fs); { final Format f1 = new Format("abc"); final Format f1res = c.setInputFormat(f1); assertTrue(f1 == f1res); assertTrue(c.doGetInputFormat() == f1); assertEquals(c.doGetOutputFormat(), null); final Format f2 = new Format("xyz"); final Format f2res = c.setOutputFormat(f2); assertTrue(f2 == f2res); assertTrue(c.doGetInputFormat() == f1); assertTrue(c.doGetOutputFormat() == f2); } } public void testArrayElementSize() { final MyBasicCodec c = new MyBasicCodec(); assertTrue(c.doGetArrayElementSize(byte[].class) == 1); assertTrue(c.doGetArrayElementSize(int[].class) == 4); assertTrue(c.doGetArrayElementSize(short[].class) == 2); assertTrue(c.doGetArrayElementSize(long[].class) == 0); assertTrue(c.doGetArrayElementSize(byte.class) == 0); assertFalse(c.isOpened()); } public void testOpened() throws ResourceUnavailableException { final MyBasicCodec c = new MyBasicCodec(); assertFalse(c.isOpened()); c.open(); assertTrue(c.isOpened()); c.close(); assertFalse(c.isOpened()); c.open(); assertTrue(c.isOpened()); { final String s1 = c.dumpToString(); c.reset(); final String s2 = c.dumpToString(); assertEquals(s1, s2); } assertTrue(c.isOpened()); c.close(); assertFalse(c.isOpened()); { final String s1 = c.dumpToString(); c.reset(); final String s2 = c.dumpToString(); assertEquals(s1, s2); } assertFalse(c.isOpened()); } public void testReset() throws ResourceUnavailableException { final MyBasicCodec c = new MyBasicCodec(); // what does reset do? final Format[] formats = new Format[] {null, new Format("abc")}; final boolean[] booleanValues = new boolean[] {true, false}; for (int i = 0; i < formats.length; ++i) for (int j = 0; j < booleanValues.length; ++j) for (int k = 0; k < booleanValues.length; ++k) { final Format f = formats[i]; final boolean open = booleanValues[j]; final boolean eom = booleanValues[k]; { final String s1 = c.dumpToString(); c.reset(); final String s2 = c.dumpToString(); assertEquals(s1, s2); } c.setInputFormat(f); { final String s1 = c.dumpToString(); c.reset(); final String s2 = c.dumpToString(); assertEquals(s1, s2); } if (open) c.open(); else c.close(); { final String s1 = c.dumpToString(); c.reset(); final String s2 = c.dumpToString(); assertEquals(s1, s2); } c.setPendingEOM(eom); { final String s1 = c.dumpToString(); c.reset(); final String s2 = c.dumpToString(); assertEquals(s1, s2); } } } public void testEOM() throws ResourceUnavailableException { // reset does not affect eom: { final MyBasicCodec c = new MyBasicCodec(); assertEquals(c.getPendingEOM(), false); c.setPendingEOM(true); assertEquals(c.getPendingEOM(), true); { final String s1 = c.dumpToString(); c.reset(); final String s2 = c.dumpToString(); assertEquals(s1, s2); } assertEquals(c.getPendingEOM(), true); } { final MyBasicCodec c = new MyBasicCodec(); assertEquals(c.getPendingEOM(), false); assertEquals(c.getPendingEOM(), false); { final String s1 = c.dumpToString(); c.reset(); final String s2 = c.dumpToString(); assertEquals(s1, s2); } assertEquals(c.getPendingEOM(), false); } // open does not affect eom: { final MyBasicCodec c = new MyBasicCodec(); assertEquals(c.getPendingEOM(), false); c.setPendingEOM(true); assertEquals(c.getPendingEOM(), true); c.open(); assertEquals(c.getPendingEOM(), true); } { final MyBasicCodec c = new MyBasicCodec(); assertEquals(c.getPendingEOM(), false); assertEquals(c.getPendingEOM(), false); c.open(); assertEquals(c.getPendingEOM(), false); } // close does not affect eom: { final MyBasicCodec c = new MyBasicCodec(); assertEquals(c.getPendingEOM(), false); c.setPendingEOM(true); assertEquals(c.getPendingEOM(), true); c.close(); assertEquals(c.getPendingEOM(), true); } { final MyBasicCodec c = new MyBasicCodec(); assertEquals(c.getPendingEOM(), false); assertEquals(c.getPendingEOM(), false); c.close(); assertEquals(c.getPendingEOM(), false); } } public void testCheckFormat() { final MyBasicCodec c = new MyBasicCodec(); assertEquals(c.doCheckFormat(null), true); assertEquals(c.doCheckFormat(new Format(null)), true); assertEquals(c.doCheckFormat(new Format("xyz")), true); c.setInputFormat(new RGBFormat()); assertEquals(c.doCheckFormat(null), true); assertEquals(c.doCheckFormat(new YUVFormat()), true); c.setInputFormats(new Format[]{new RGBFormat()}); assertEquals(c.doCheckFormat(null), true); assertEquals(c.doCheckFormat(new YUVFormat()), true); c.setOutputFormats(new Format[]{new RGBFormat()}); assertEquals(c.doCheckFormat(null), true); assertEquals(c.doCheckFormat(new YUVFormat()), true); c.setOutputFormat(new RGBFormat()); assertEquals(c.doCheckFormat(null), true); assertEquals(c.doCheckFormat(new YUVFormat()), true); { final TracingFormat f = new TracingFormat("zzz"); c.doCheckFormat(f); assertEquals(f.getStringBuffer().toString(), ""); } } public void testBufferEOM() { final MyBasicCodec c = new MyBasicCodec(); try { c.doIsEOM(null); assertFalse(true); } catch (NullPointerException e) { } final Buffer b = new Buffer(); assertFalse(c.doIsEOM(b)); assertFalse(c.getPendingEOM()); b.setEOM(true); assertFalse(c.getPendingEOM()); assertTrue(c.doIsEOM(b)); assertFalse(c.getPendingEOM()); final TracingBuffer b2 = new TracingBuffer(); assertEquals(b2.getStringBuffer().toString(), ""); assertFalse(c.doIsEOM(b2)); assertEquals(b2.getStringBuffer().toString(), "isEOM\n"); c.setOutputFormat(new Format("zzz")); c.doPropagateEOM(b2); assertEquals(b2.getStringBuffer().toString(), "isEOM\nsetFormat(zzz)\nsetLength(0)\nsetOffset(0)\nsetEOM\n"); //System.out.println(b2.getStringBuffer().toString()); assertTrue(c.doIsEOM(b2)); assertEquals(b2.getStringBuffer().toString(), "isEOM\nsetFormat(zzz)\nsetLength(0)\nsetOffset(0)\nsetEOM\nisEOM\n"); assertFalse(c.getPendingEOM()); assertEquals(b2.getStringBuffer().toString(), "isEOM\nsetFormat(zzz)\nsetLength(0)\nsetOffset(0)\nsetEOM\nisEOM\n"); //System.out.println(b2.getStringBuffer().toString()); } public void testUpdateOutput() { { final MyBasicCodec c = new MyBasicCodec(); final TracingBuffer b = new TracingBuffer(); final Format f = new Format("abc"); c.doUpdateOutput(b, f, 10, 20); assertEquals(b.getLength(), 10); assertEquals(b.getOffset(), 20); assertTrue(b.getFormat() == f); //System.out.println(b.getStringBuffer().toString()); assertEquals(b.getStringBuffer().toString(),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -