Package joshua.corpus.suffix_array

Source Code of joshua.corpus.suffix_array.PatternTest

/* This file is part of the Joshua Machine Translation System.
*
* Joshua is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package joshua.corpus.suffix_array;


import joshua.corpus.Phrase;
import joshua.corpus.suffix_array.Pattern;
import joshua.corpus.vocab.SymbolTable;
import joshua.corpus.vocab.Vocabulary;
import joshua.prefix_tree.PrefixTree;
import joshua.util.Cache;

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



/**
*
*
* @author Lane Schwartz
*/
public class PatternTest {

  int[] words = {1, 2, 3, SymbolTable.X, 4, 5, 6, SymbolTable.X, 7};
  int[] extra = {30, 70, 22};
  int[] extendedWords = {1, 2, 3, SymbolTable.X, 4, 5, 6, SymbolTable.X, 7, 30, 70, 22};
  Vocabulary vocab = new Vocabulary();
 
  Pattern pattern;
 
  @Test
  public void basicPattern() {
   
    pattern = new Pattern(vocab, words);
   
    Assert.assertEquals(pattern.getWordIDs(), words);
    Assert.assertEquals(pattern.getVocab(), vocab);
    Assert.assertEquals(pattern.arity(), 2);
   
  }

 
  @Test(dependsOnMethods = {"basicPattern"})
  public void extendedPattern() {
   
    Pattern extendedPattern = new Pattern(pattern, extra);
   
    Assert.assertEquals(extendedPattern.getWordIDs().length, extendedWords.length);
   
    for (int i=0; i<extendedWords.length; i++) {
      Assert.assertEquals(extendedPattern.getWordIDs()[i], extendedWords[i]);
    }
   
    Assert.assertEquals(extendedPattern.getVocab(), vocab);
    Assert.assertEquals(extendedPattern.arity(), 2);
     
  }
 
  @Test(dependsOnMethods = {"basicPattern"})
  public void copiedPattern() {
   
    Phrase phrase = pattern;
   
    Pattern copiedPattern = new Pattern(phrase);
   
    Assert.assertEquals(copiedPattern.getWordIDs().length, words.length);
    for (int i=0; i<words.length; i++) {
      Assert.assertEquals(copiedPattern.getWordIDs()[i], words[i]);
    }
    Assert.assertEquals(copiedPattern.getVocab(), vocab);
    Assert.assertEquals(copiedPattern.arity(), 2)
  }
 
  @Test
  public void getTerminalSequenceLengths() {
   
    {
      int[] flatWords = {1, 2, 3, 4, 5};
      Pattern flat = new Pattern(vocab, flatWords);
      byte[] flatSeqs = flat.getTerminalSequenceLengths();

      Assert.assertNotNull(flatSeqs);
      Assert.assertEquals(flatSeqs.length, 1);
      Assert.assertEquals(flatSeqs[0], 5);
    }
   
    {
      int[] hierWords = {1, SymbolTable.X, 6, 7};
      Pattern hier = new Pattern(vocab, hierWords);
      byte[] hierSeqs = hier.getTerminalSequenceLengths();
     
      Assert.assertNotNull(hierSeqs);
      Assert.assertEquals(hierSeqs.length, 2);
      Assert.assertEquals(hierSeqs[0], 1);
      Assert.assertEquals(hierSeqs[1], 2);
    }
   
    {
      int[] hierWords = {SymbolTable.X, 6, 7};
      Pattern hier = new Pattern(vocab, hierWords);
      byte[] hierSeqs = hier.getTerminalSequenceLengths();
     
      Assert.assertNotNull(hierSeqs);
      Assert.assertEquals(hierSeqs.length, 1);
      Assert.assertEquals(hierSeqs[0], 2);
    }
   
    {
      int[] hierWords = {1, 2, 3, SymbolTable.X};
      Pattern hier = new Pattern(vocab, hierWords);
      byte[] hierSeqs = hier.getTerminalSequenceLengths();
     
      Assert.assertNotNull(hierSeqs);
      Assert.assertEquals(hierSeqs.length, 1);
      Assert.assertEquals(hierSeqs[0], 3);
    }
   
    {
      int[] hierWords = {1, SymbolTable.X, 6, 7, SymbolTable.X};
      Pattern hier = new Pattern(vocab, hierWords);
      byte[] hierSeqs = hier.getTerminalSequenceLengths();
     
      Assert.assertNotNull(hierSeqs);
      Assert.assertEquals(hierSeqs.length, 2);
      Assert.assertEquals(hierSeqs[0], 1);
      Assert.assertEquals(hierSeqs[1], 2);
    }
   
    {
      int[] hierWords = {SymbolTable.X, 6, 7, SymbolTable.X, 10};
      Pattern hier = new Pattern(vocab, hierWords);
      byte[] hierSeqs = hier.getTerminalSequenceLengths();
     
      Assert.assertNotNull(hierSeqs);
      Assert.assertEquals(hierSeqs.length, 2);
      Assert.assertEquals(hierSeqs[0], 2);
      Assert.assertEquals(hierSeqs[1], 1);
    }
   
    {
      int[] hierWords = {1, 2, 3, SymbolTable.X, 6, 7, SymbolTable.X};
      Pattern hier = new Pattern(vocab, hierWords);
      byte[] hierSeqs = hier.getTerminalSequenceLengths();
     
      Assert.assertNotNull(hierSeqs);
      Assert.assertEquals(hierSeqs.length, 2);
      Assert.assertEquals(hierSeqs[0], 3);
      Assert.assertEquals(hierSeqs[1], 2);
    }
   
    {
      int[] hierWords = {1, SymbolTable.X, 6, SymbolTable.X, 9};
      Pattern hier = new Pattern(vocab, hierWords);
      byte[] hierSeqs = hier.getTerminalSequenceLengths();
     
      Assert.assertNotNull(hierSeqs);
      Assert.assertEquals(hierSeqs.length, 3);
      Assert.assertEquals(hierSeqs[0], 1);
      Assert.assertEquals(hierSeqs[1], 1);
      Assert.assertEquals(hierSeqs[2], 1);
    }
   
    {
      int[] hierWords = {1, 2, 3, SymbolTable.X, 6, 7, SymbolTable.X, 9, 10, 11, 12};
      Pattern hier = new Pattern(vocab, hierWords);
      byte[] hierSeqs = hier.getTerminalSequenceLengths();
     
      Assert.assertNotNull(hierSeqs);
      Assert.assertEquals(hierSeqs.length, 3);
      Assert.assertEquals(hierSeqs[0], 3);
      Assert.assertEquals(hierSeqs[1], 2);
      Assert.assertEquals(hierSeqs[2], 4);
    }
  }
 
  @Test(dependsOnMethods = {"extendedPattern","copiedPattern"})
  public void cacheTest() {
   
    Cache<Pattern,Integer> cache = new Cache<Pattern,Integer>(10);
   
    cache.put(pattern, 1);
   
    Assert.assertTrue(cache.containsKey(pattern));
    Assert.assertEquals((int) cache.get(pattern), 1);
   
    Pattern copiedPattern = new Pattern(pattern);
    Assert.assertTrue(cache.containsKey(copiedPattern));
    Assert.assertEquals((int) cache.get(copiedPattern), 1);
  }
 
}
TOP

Related Classes of joshua.corpus.suffix_array.PatternTest

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.