Package joshua.util.io

Source Code of joshua.util.io.BinaryTest

package joshua.util.io;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.HashSet;
import java.util.Set;

import joshua.corpus.vocab.Vocabulary;

import org.testng.Assert;
import org.testng.annotations.Test;

public class BinaryTest {

 
  @Test
  public void externalizeVocabulary() throws IOException, ClassNotFoundException {
   
    Set<String> words = new HashSet<String>();
   
    for (char c1='a'; c1<='z'; c1++) {
      words.add(new String(new char[]{c1}));
      for (char c2='a'; c2<='z'; c2++) {
        words.add(new String(new char[]{c1,c2}));
     
    }
   
    Vocabulary vocab = new Vocabulary(words);
   
    try {
     
      File tempFile = File.createTempFile(BinaryTest.class.getName(), "vocab");
      FileOutputStream outputStream = new FileOutputStream(tempFile);
      ObjectOutput out = new BinaryOut(outputStream, true);
      vocab.writeExternal(out);
     
      ObjectInput in = new BinaryIn<Vocabulary>(tempFile.getAbsolutePath(), Vocabulary.class);
      Object o = in.readObject();
      Assert.assertTrue(o instanceof Vocabulary);
     
      Vocabulary newVocab = (Vocabulary) o;
     
      Assert.assertNotNull(newVocab);
      Assert.assertEquals(newVocab.size(), vocab.size());     
     
      Assert.assertEquals(newVocab, vocab);
     

     
     
    } catch (SecurityException e) {
      Assert.fail("Operating system is unable to create a temp file required by this unit test: " + e);
    }
  }
}
TOP

Related Classes of joshua.util.io.BinaryTest

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.