Package ru.ifmo.diplom.kirilchuk.coders.impl.fusion

Source Code of ru.ifmo.diplom.kirilchuk.coders.impl.fusion.FusionCodeOutputInputTest

package ru.ifmo.diplom.kirilchuk.coders.impl.fusion;

import static org.junit.Assert.assertEquals;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Arrays;
import java.util.Random;
import java.util.logging.Logger;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;

import ru.ifmo.diplom.kirilchuk.coders.Decoder;
import ru.ifmo.diplom.kirilchuk.coders.Encoder;
import ru.ifmo.diplom.kirilchuk.coders.impl.arithmetic.AdaptiveUnigramModel;
import ru.ifmo.diplom.kirilchuk.coders.impl.arithmetic.ArithDecoder;
import ru.ifmo.diplom.kirilchuk.coders.impl.arithmetic.ArithEncoder;
import ru.ifmo.diplom.kirilchuk.coders.impl.monotone.levenshtein.LevenshteinDecoder;
import ru.ifmo.diplom.kirilchuk.coders.impl.monotone.levenshtein.LevenshteinEncoder;
import ru.ifmo.diplom.kirilchuk.coders.io.BitInput;
import ru.ifmo.diplom.kirilchuk.coders.io.BitOutput;
import ru.ifmo.diplom.kirilchuk.coders.io.impl.BitInputImpl;
import ru.ifmo.diplom.kirilchuk.coders.io.impl.BitOutputImpl;

public class FusionCodeOutputInputTest {
  private FusionEncoder encoder;
  private FusionDecoder decoder;
 
  private Random rnd = new Random();
 
  @Before
  public void before() {
    ArithEncoder arithEncoder = new ArithEncoder(new AdaptiveUnigramModel());
    Encoder monotoneEncoder = new LevenshteinEncoder();
    encoder = new FusionEncoder(arithEncoder, monotoneEncoder);

    ArithDecoder arithDecoder = new ArithDecoder(new AdaptiveUnigramModel());
    Decoder monotoneDecoder = new LevenshteinDecoder();
    decoder = new FusionDecoder(arithDecoder, monotoneDecoder);
  }
 
  @Test
  public void integrationTestReadWriteSequenceOnlyArithCode() throws Exception {
    int[] values = new int[255];
    for (int i = 0; i < values.length; ++i) {
      values[i] = i;
    }
    encodeDecodeWithAssert(values);
  }

//  @Ignore//TODO: FAIL NOT WORKS!
  @Test
  public void testReadWriteArithMonoArith() throws Exception {
    int[] values = {
        128, 255
    };
    encodeDecodeWithAssert(values);
  }

  private void encodeDecodeWithAssert(int... values) throws Exception {
//    ByteArrayOutputStream bos = new ByteArrayOutputStream();
//    BitOutput bitOutput = new BitOutputImpl(bos);
//    FusionCodeOutputStream output = new FusionCodeOutputStream(encoder, bitOutput);
//
//    for (int value : values) {
//      output.write(value);
//    }
//    output.close();
//
//    ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
////    System.out.println(Arrays.toString(bos.toByteArray()));
//    BitInput bitInput = new BitInputImpl(bis);
//    FusionCodeInputStream input = new FusionCodeInputStream(decoder, bitInput);
//
//    for (int value : values) {
//      assertEquals(value, input.read());
//    }
//    input.close();
  }
}
TOP

Related Classes of ru.ifmo.diplom.kirilchuk.coders.impl.fusion.FusionCodeOutputInputTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.