brouter/brouter-util/src/test/java/btools/util/MixCoderTest.java
2016-11-20 22:28:16 +01:00

63 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( int 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 );
}
}
}
}