Package com.github.krukow.clj_lang.test

Source Code of com.github.krukow.clj_lang.test.PersistentVectorTest

/**
*
*/
package com.github.krukow.clj_lang.test;

import static org.junit.Assert.assertEquals;

import java.util.HashSet;

import org.junit.Test;

import com.github.krukow.clj_lang.AFn;
import com.github.krukow.clj_lang.IFn;
import com.github.krukow.clj_lang.IPersistentVector;
import com.github.krukow.clj_lang.ISeq;
import com.github.krukow.clj_lang.PersistentVector;
import com.github.krukow.clj_lang.Util;

/**
* @author krukow
*
*/
public class PersistentVectorTest {

  @Test
  public final void testEmptyVector() {
    PersistentVector<Integer> vecI = PersistentVector.emptyVector();
    assertEquals(0, vecI.size());
    PersistentVector<String> vecS = PersistentVector.emptyVector();
    assertEquals(0, vecS.size());
    assert(vecI == (PersistentVector) vecS);
  }

  /**
   *  * NB: this methods takes a long time to run. Be patient.
   */
  @Test
  public final void testIterator() {
    PersistentVector<Integer> vec = PersistentVector.emptyVector();
    HashSet<Integer> hs = null;
    int N = 32*32*32+33;
    //Checking all states up to: N
    for (int i = 0; i < N; i++) {
      hs = new HashSet<Integer>();
      int expected = 0;
      for (Integer o : vec) {
        assert(expected == o);
        expected += 1;
        hs.add(o);
      }
      assertEquals(i,hs.size());
      Integer o = new Integer(i);
      vec = vec.cons(o);
   
  }
 

  /**
   *  * NB: this methods takes a long time to run. Be patient.
   */
  @Test
  public final void testVectorMap() {
    PersistentVector<Integer> vec = PersistentVector.emptyVector();
    HashSet<Integer> hs = null;
    int N = 32*32*32+33;
    //Checking all states up to: N
    for (int i = 0; i < N; i++) {
      vec = vec.cons(i);
     
    }
    IPersistentVector vector = PersistentVector.vectormap(new AFn() {
      @Override
      public Object invoke(Object arg1) {
        Integer s = (Integer )arg1;
        return s.intValue()*2;
      }
    }, vec);
    assertEquals(vec.length(), vector.length());
    for (int i = 0; i < N; i++) {
      assertEquals(i*2, vector.nth(i));
     
    }
  }

}
TOP

Related Classes of com.github.krukow.clj_lang.test.PersistentVectorTest

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.