64 lines
1.4 KiB
Java
64 lines
1.4 KiB
Java
package btools.util;
|
|
|
|
import java.util.Random;
|
|
import java.io.*;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
public class MixCoderTest
|
|
{
|
|
@Test
|
|
public void mixEncodeDecodeTest() throws IOException
|
|
{
|
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
MixCoderDataOutputStream mco = new MixCoderDataOutputStream( baos );
|
|
MixCoderDataInputStream mci = null;
|
|
|
|
for(;;)
|
|
{
|
|
Random rnd = new Random( 1234 );
|
|
for( int i=0; i<1500; i++ )
|
|
{
|
|
checkEncodeDecode( rnd.nextInt( 3800 ), mco, mci );
|
|
}
|
|
for( int i=0; i<1500; i++ )
|
|
{
|
|
checkEncodeDecode( rnd.nextInt( 35 ), mco, mci );
|
|
}
|
|
for( int i=0; i<1500; i++ )
|
|
{
|
|
checkEncodeDecode( 0, mco, mci );
|
|
}
|
|
for( int i=0; i<1500; i++ )
|
|
{
|
|
checkEncodeDecode( 1000, mco, mci );
|
|
}
|
|
|
|
if ( mco != null )
|
|
{
|
|
mco.close();
|
|
mco = null;
|
|
mci = new MixCoderDataInputStream( new ByteArrayInputStream( baos.toByteArray() ) );
|
|
}
|
|
else break;
|
|
}
|
|
}
|
|
|
|
private void checkEncodeDecode( long v, MixCoderDataOutputStream mco, MixCoderDataInputStream mci ) throws IOException
|
|
{
|
|
if ( mco != null )
|
|
{
|
|
mco.writeMixed( v );
|
|
}
|
|
if ( mci != null )
|
|
{
|
|
long vv = mci.readMixed();
|
|
if ( vv != v )
|
|
{
|
|
Assert.assertTrue( "value mismatch: v=" + v + " vv=" + vv, false );
|
|
}
|
|
}
|
|
}
|
|
}
|