package edu.neu.ccs.evergreen.ir;
import static org.junit.Assert.*;
import org.junit.Test;
public class RelationCoreOnesQTest {
int maxRank = RelationCore.MaxRank;
@Test
public final void testOnes() {
for(int rank=1;rank<maxRank;rank++){
for (int i = 0; i <=(1<<rank); i++) {
int r=0;
for(int j=0;j<i;j++){
r|=(1<<j);
}
assertTrue(i==RelationCore.ones(r, rank));
}
}
}
@Test
public final void testQ() {
for (int rank = 1; rank < maxRank; rank++) {
for (int i = 0; i <= rank; i++) {
int relationNumber = RelationNumberUtil.xTrueVars(rank, i);
for(int j=0;j<=rank;j++){
int qs = RelationCore.q(relationNumber, rank, j);
if(i==j){
assertTrue(qs!=0);
assertTrue(qs==RelationCore.ones(relationNumber, rank));
}else{
assertTrue(qs==0);
}
}
}
}
}
}