@@ -65,7 +65,8 @@ main = do
6565 testRelationAttributeDefinition,
6666 testAssignWithTypeVar,
6767 testDefineWithTypeVar,
68− testIntervalType
68+ testIntervalType,
69+ testArbitraryRelation
6970 ]
7071 simpleRelTests = [("x:=true", Right relationTrue),
7172 ("x:=false", Right relationFalse),
@@ -578,4 +579,11 @@ testIntervalType = TestCase $ do
578579 eX <- executeRelationalExpr sessionId dbconn (RelationVariable "x" ())
579580 let expectedIntervalInt = mkRelationFromList expectedAttrs []
580581 expectedAttrs = A.attributesFromList [Attribute "a" (ConstructedAtomType "Interval" (M.singleton "a" IntegerAtomType))]
581− assertEqual "Interval Int attribute" expectedIntervalInt eX
582+ assertEqual "Interval Int attribute" expectedIntervalInt eX
583+
584+testArbitraryRelation :: Test
585+testArbitraryRelation = TestCase $ do
586+ (sessionId, dbconn) <- dateExamplesConnection emptyNotificationCallback
587+ executeTutorialD sessionId dbconn "createarbitraryrelation rv1 {a Integer} 5-10"
588+ executeTutorialD sessionId dbconn "createarbitraryrelation rv2 {a Integer, b relation{c Integer}} 10-100"
589+ executeTutorialD sessionId dbconn "createarbitraryrelation rv3 {a Int, b relation{c Interval Int}} 3-100"