TBool AVisWidget::HandleCompChanged(Elem& aContext, Elem& aComp) { TBool res = EFalse; Elem* eprntcp = aContext.GetNode("ConnPoint:Child"); if (eprntcp != NULL) { if (eprntcp == &aComp || eprntcp->IsComp(&aComp)) { MVisContainer* mcont = (MVisContainer*) eprntcp->GetSIfiC(MVisContainer::Type(), this); if (mcont != NULL) { if (iWidget->get_parent() == NULL) { Container& cont = mcont->GetContainer(); cont.add(*iWidget); } else { Logger()->Write(MLogRec::EErr, this, "Attempt to attach already attached child"); } } else if (iWidget->get_parent() != NULL) { iWidget->get_parent()->remove(*iWidget); } } } else { Logger()->Write(MLogRec::EErr, this, "Input [Child] not exists"); } return res; }
void Ut_func::test_FuncSeq4() { printf("\n === Test of convolution function with separate working function\n"); iEnv = new Env("Env", "ut_func_seq4.xml", "ut_func_seq4.txt"); CPPUNIT_ASSERT_MESSAGE("Fail to create Env", iEnv != 0); iEnv->ConstructSystem(); Elem* root = iEnv->Root(); CPPUNIT_ASSERT_MESSAGE("Fail to get root", root != 0); Elem* resdata = root->GetNode("Incaps:test/DataSInt:ResData/Elem:Capsule/ConnPoint:out"); CPPUNIT_ASSERT_MESSAGE("Fail to get res data out", resdata != 0); MDIntGet* rdataget = resdata->GetObj(rdataget); CPPUNIT_ASSERT_MESSAGE("Fail to get rdata out Get iface", rdataget != 0); TInt rdataval = rdataget->Value(); CPPUNIT_ASSERT_MESSAGE("Incorrect rdata value", rdataval == 1); Elem* resdataprop = root->GetNode("Incaps:test/DataSInt:ResData/Prop:Value"); CPPUNIT_ASSERT_MESSAGE("Fail to get rdata value property", resdataprop != 0); MProp* rdmprop = resdataprop->GetObj(rdmprop); const string& rdval = rdmprop->Value(); CPPUNIT_ASSERT_MESSAGE("Incorrect rdata prop value", rdval == "1"); // Checking the result update on update of input // Mutate the input data first Elem* dinp = root->GetNode("test/Data_SelfCoord"); ChromoNode nchange = dinp->Mutation().Root().AddChild(ENt_Cont); nchange.SetAttr(ENa_MutNode, "Prop:Value"); nchange.SetAttr(ENa_MutVal, "80"); dinp->Mutate(); // Check the output data Elem* resdataprop1 = root->GetNode("Incaps:test/DataSInt:ResData/Prop:Value"); CPPUNIT_ASSERT_MESSAGE("Fail to get result data value property when inp data changed", resdataprop1 != 0); MProp* rdmprop1 = resdataprop1->GetObj(rdmprop1); const string& rdval1 = rdmprop1->Value(); CPPUNIT_ASSERT_MESSAGE("Incorrect result data prop value when inp data changed", rdval1 == "3"); // Verifying second part of test - division Elem* resdata2 = root->GetNode("Incaps:test/DataSInt:DivResData/Elem:Capsule/ConnPoint:out"); CPPUNIT_ASSERT_MESSAGE("Fail to get res data out", resdata2 != 0); MDIntGet* rdataget2 = resdata2->GetObj(rdataget2); CPPUNIT_ASSERT_MESSAGE("Fail to get rdata out Get iface", rdataget2 != 0); TInt rdataval2 = rdataget2->Value(); CPPUNIT_ASSERT_MESSAGE("Incorrect rdata value", rdataval2 == 4); delete iEnv; }
void Ut_func::test_FuncSeq1() { printf("\n === Test of simple sequence of functions\n"); iEnv = new Env("Env", "ut_func_seq1.xml", "ut_func_seq1.txt"); CPPUNIT_ASSERT_MESSAGE("Fail to create Env", iEnv != 0); iEnv->ConstructSystem(); Elem* root = iEnv->Root(); CPPUNIT_ASSERT_MESSAGE("Fail to get root", root != 0); Elem* doutp = root->GetNode("Incaps:test/DataSInt:DataS_Int_1/Elem:Capsule/ConnPoint:out"); CPPUNIT_ASSERT_MESSAGE("Fail to get data out", doutp != 0); MDIntGet* doutpget = doutp->GetObj(doutpget); CPPUNIT_ASSERT_MESSAGE("Fail to get data out Get iface", doutpget != 0); CPPUNIT_ASSERT_MESSAGE("Fail to get value of data iface", doutpget->Value() == 34); MVert* mdoutpv = doutp->GetObj(mdoutpv); CPPUNIT_ASSERT_MESSAGE("Fail to get data out vertex", mdoutpv != 0); MVert* pair = *(mdoutpv->Pairs().begin()); CPPUNIT_ASSERT_MESSAGE("Fail to get pair", pair != 0); Elem* efuninp = root->GetNode("Incaps:test/FuncIncInt:Incr/Elem:Capsule/ConnPoint:inp"); CPPUNIT_ASSERT_MESSAGE("Fail to get fun inp", efuninp != NULL); MVert* mpairt = efuninp->GetObj(mpairt); CPPUNIT_ASSERT_MESSAGE("Wrong pair", pair == mpairt); Elem* foutp = root->GetNode("Incaps:test/FuncIncInt:Incr2/Elem:Capsule/ConnPoint:out"); CPPUNIT_ASSERT_MESSAGE("Fail to get func out", foutp != 0); MDIntGet* foutpget = foutp->GetObj(foutpget); CPPUNIT_ASSERT_MESSAGE("Fail to get func out Get iface", foutpget != 0); TInt fres = foutpget->Value(); CPPUNIT_ASSERT_MESSAGE("Incorrect func result", fres == 36); Elem* resdata = root->GetNode("Incaps:test/DataSInt:ResData/Elem:Capsule/ConnPoint:out"); CPPUNIT_ASSERT_MESSAGE("Fail to get res data out", resdata != 0); MDIntGet* rdataget = resdata->GetObj(rdataget); CPPUNIT_ASSERT_MESSAGE("Fail to get rdata out Get iface", rdataget != 0); TInt rdataval = rdataget->Value(); CPPUNIT_ASSERT_MESSAGE("Incorrect rdata value", rdataval == 36); Elem* resdataprop = root->GetNode("Incaps:test/DataSInt:ResData/Prop:Value"); CPPUNIT_ASSERT_MESSAGE("Fail to get rdata value property", resdataprop != 0); MProp* rdmprop = resdataprop->GetObj(rdmprop); const string& rdval = rdmprop->Value(); CPPUNIT_ASSERT_MESSAGE("Incorrect rdata prop value", rdval == "36"); // Checking the result update on update of input // Mutate the input data first Elem* dinp = root->GetNode("Incaps:test/DataSInt:DataS_Int_1"); ChromoNode nchange = dinp->Mutation().Root().AddChild(ENt_Cont); nchange.SetAttr(ENa_MutNode, "Prop:Value"); nchange.SetAttr(ENa_MutVal, "57"); dinp->Mutate(); // Check the function output Elem* foutp1 = root->GetNode("Incaps:test/FuncIncInt:Incr2/Elem:Capsule/ConnPoint:out"); CPPUNIT_ASSERT_MESSAGE("Fail to get func out when inp data changed", foutp1 != 0); MDIntGet* foutpget1 = foutp1->GetObj(foutpget1); CPPUNIT_ASSERT_MESSAGE("Fail to get func out Get iface when input data changed", foutpget1 != 0); TInt fres1 = foutpget1->Value(); CPPUNIT_ASSERT_MESSAGE("Incorrect func result after input data change", fres1 == 59); // Check the output data Elem* resdataprop1 = root->GetNode("Incaps:test/DataSInt:ResData/Prop:Value"); CPPUNIT_ASSERT_MESSAGE("Fail to get result data value property when inp data changed", resdataprop1 != 0); MProp* rdmprop1 = resdataprop1->GetObj(rdmprop1); const string& rdval1 = rdmprop1->Value(); CPPUNIT_ASSERT_MESSAGE("Incorrect result data prop value when inp data changed", rdval1 == "59"); delete iEnv; }