package org.reldb.rel.tests.main;
import org.junit.After;
import org.junit.Test;
import org.reldb.rel.tests.BaseOfTest;
import org.reldb.rel.v0.values.*;
public class TestComplexExpression6 extends BaseOfTest {
@Test
public void testComplexExpression6() {
String src =
"begin;" +
" operator go() returns tuple {x integer, a integer, b tuple {x integer, y rational}, c rational};" +
" begin;" +
" var myvar init(TUPLE {x 1});" +
" operator blah(p integer, q tuple {x integer, y rational}, r rational) " +
" returns tuple {x integer, a integer, b tuple {x integer, y rational}, c rational};" +
" return extend myvar : {a := p, b := q, c := r};" +
" end operator;" +
" return blah(5, tuple {x 1, y 2.3}, 3.8);" +
" end;" +
" end operator;" +
"end;" +
"go()";
String expected =
"TUPLE {x 1, a 5, b TUPLE {x 1, y 2.3}, c 3.8}";
testEquals(expected, src);
}
@After
public void testComplexExpression6_cleanup() {
String src =
"BEGIN;" +
" DROP OPERATOR go();" +
"END;" +
"true";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
}