package org.reldb.rel.tests.main;
import org.junit.Test;
import org.reldb.rel.tests.BaseOfTest;
import org.reldb.rel.v0.values.*;
public class TestEquiv extends BaseOfTest {
@Test
public void testBinaryEquiv0() {
String src =
"false equiv true";
assertValueEquals(ValueBoolean.select(generator, false), testEvaluate(src).getValue());
}
@Test
public void testBinaryEquiv1() {
String src =
"true equiv false";
assertValueEquals(ValueBoolean.select(generator, false), testEvaluate(src).getValue());
}
@Test
public void testBinaryEquiv2() {
String src =
"true equiv true";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
@Test
public void testBinaryEquiv3() {
String src =
"false equiv false";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv0() {
String src =
"equiv {}";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv1() {
String src =
"equiv {true}";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv2() {
String src =
"equiv {false}";
assertValueEquals(ValueBoolean.select(generator, false), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv3() {
String src =
"equiv {false, true}";
assertValueEquals(ValueBoolean.select(generator, false), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv4() {
String src =
"equiv {true, true}";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv5() {
String src =
"equiv {false, false}";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv6() {
String src =
"equiv {false, false, true}";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv7() {
String src =
"equiv {false, true, true}";
assertValueEquals(ValueBoolean.select(generator, false), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv8() {
String src =
"equiv {false, true, false, true, true}";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
@Test
public void testNAdicEquiv9() {
String src =
"equiv {false, true, false, true, true, false}";
assertValueEquals(ValueBoolean.select(generator, false), testEvaluate(src).getValue());
}
@Test
public void testRelationEquiv1() {
String src =
"BEGIN;" +
"var a private relation {w_zot boolean, x_zot integer} key {x_zot};" +
"a := relation {tuple {w_zot true, x_zot 2}, tuple {x_zot 3, w_zot true}};" +
"END;" +
"EQUIV(a, w_zot)";
testEquals("true", src);
}
@Test
public void testRelationEquiv2() {
String src =
"BEGIN;" +
"var a private relation {w_zot boolean, x_zot integer} key {x_zot};" +
"a := relation {tuple {w_zot false, x_zot 2}, tuple {x_zot 3, w_zot true}};" +
"END;" +
"EQUIV(a, w_zot)";
testEquals("false", src);
}
@Test
public void testRelationEquiv3() {
String src =
"BEGIN;" +
"var a private relation {w_zot boolean, x_zot integer} key {x_zot};" +
"a := relation {tuple {w_zot false, x_zot 2}, tuple {x_zot 3, w_zot false}};" +
"END;" +
"EQUIV(a, w_zot)";
testEquals("true", src);
}
@Test
public void testRelationEquiv4() {
String src =
"BEGIN;" +
"var a private relation {w_zot boolean, x_zot integer} key {x_zot};" +
"END;" +
"EQUIV(a, w_zot)";
testEquals("true", src);
}
@Test
public void testSummarizeEquiv() {
String src =
"BEGIN;\n" +
"VAR a PRIVATE INIT(relation {\n" +
" tuple {x false, y 1.2, z \"falsefalse\"},\n" +
" tuple {x false, y 1.3, z \"falsefalse\"},\n" +
" tuple {x true, y 1.4, z \"truefalse\"},\n" +
" tuple {x false, y 1.5, z \"truefalse\"},\n" +
" tuple {x true, y 1.6, z \"truetrue\"},\n" +
" tuple {x true, y 1.7, z \"truetrue\"}\n" +
"}) KEY {ALL BUT};\n" +
"END;\n" +
"SUMMARIZE a BY {z} : {equivOfx := EQUIV(x)}";
testEquals("RELATION {z CHARACTER, equivOfx BOOLEAN} {\n\tTUPLE {z \"falsefalse\", equivOfx true},\n\tTUPLE {z \"truefalse\", equivOfx false},\n\tTUPLE {z \"truetrue\", equivOfx true}\n}", src);
}
}