void TestDelNode() { BayesNet *net = SevenNodesModel(); net->DelNode("node2"); // all continuous nodes are observed net->EditEvidence("node0^0.3"); net->EditEvidence("node1^0.2"); net->EditEvidence("node5^0.9"); net->EditEvidence("node4^True"); net->SetProperty("Inference", "jtree"); TokArr jpd3 = net->GetJPD("node3"); std::cout<< "jpd node3:\t"<<jpd3 << "\n"; TokArr jpd6 = net->GetJPD("node6"); std::cout<< "jpd node6:\t"<<jpd6 << "\n"; delete net; std::cout << "TestDelArc is completed successfully" << std::endl; }
void CrashTestJtreeInferenceSoftMax() { BayesNet *net = SimpleSoftMaxModel(); net->SetProperty("Inference", "jtree"); TokArr jpd5 = net->GetJPD("node5"); std::cout<< "jpd node5:\t"<<jpd5 << "\n"; delete net; }
void TestsPnlHigh::TestConditionalGaussianGetJPD() { printf("TestConditionalGaussianGetJPD\n"); BayesNet *net = SimpleCGM1(); net->SetPGaussian("Cont0", "1.5 -0.5", "1.0 0.3 0.3 2.0", TokArr(), TokArr()); net->SetPGaussian("Cont1", "0.0", "2.5", "1.0 3.0", "Tab0^State0"); net->SetPGaussian("Cont1", "-1.5", "0.75", "0.5 2.5", "Tab0^State1"); net->SetProperty("Inference", "naive"); net->EditEvidence("Tab0^State0"); net->GetJPD("Cont0"); net->GetJPD("Cont1"); net->GetJPD("Cont2"); net->ClearEvid(); Tok tok0("Cont0^Dim0^0.0"); Tok tok1("Cont0^Dim1^0.0"); TokIdNode *id0 = tok0.Node(); TokIdNode *id1 = tok1.Node(); bool is_int0 = id0->id[id0->id.size()-1].is_int; bool is_int1 = id1->id[id1->id.size()-1].is_int; int int_id0 = id0->id[id0->id.size()-1].int_id; int int_id1 = id1->id[id1->id.size()-1].int_id; TokIdNode *id = net->Net().Token().Node(Tok("Cont0"))->v_next; TokIdNode *id2 = net->Net().Token().Node(Tok("Cont1"))->v_next; TokIdNode *id3 = net->Net().Token().Node(Tok("Cont2"))->v_next; TokIdNode *id4 = net->Net().Token().Node(Tok("Tab0"))->v_next; //TokIdNode *a1 = id->v_next; //TokIdNode *a2 = a1->h_next; net->EditEvidence("Cont0^Dim0^0.0 Cont0^Dim1^1.0"); net->EditEvidence("Cont1^Dim0^0.0"); net->EditEvidence("Cont2^Dim0^0.0"); net->GetJPD("Tab0"); delete net; };
void TestJtreeInferenceSoftMax1() { BayesNet *net = SimpleSoftMaxModel(); // all continuous nodes are observed net->EditEvidence("node0^0.3"); net->EditEvidence("node1^0.2"); net->EditEvidence("node2^0.9"); net->SetProperty("Inference", "jtree"); TokArr jpd5 = net->GetJPD("node5"); std::cout<< "jpd node5:\t"<<jpd5 << "\n"; delete net; std::cout << "TestJtreeInferenceSoftMax1 is completed successfully" << std::endl; }
void TestsPnlHigh::TestCondGaussianGetMPE() { printf("TestCondGaussianGetMPE\n"); BayesNet *net = SimpleCGM1(); //Cont0(3) Tab0(0) // | | // \/ \/ // Cont1(1) // | // \/ // Cont2(2) net->SetPGaussian("Cont0", "1.5 -0.5", "1.0 0.3 0.3 2.0", TokArr(), TokArr()); net->SetPGaussian("Cont1", "0.0", "2.5", "1.0 3.0", "Tab0^State0"); net->SetPGaussian("Cont1", "-1.5", "0.75", "0.5 2.5", "Tab0^State1"); net->SetProperty("Inference", "naive"); net->EditEvidence("Tab0^State1"); #ifndef PRINT_TestCondGaussianGetMPE net->GetMPE("Cont0"); net->GetMPE("Cont1"); net->GetMPE("Cont2"); #else std::cout << String(net->GetMPE("Cont0")) << "\n"; std::cout << String(net->GetMPE("Cont1")) << "\n"; std::cout << String(net->GetMPE("Cont2")) << "\n"; #endif net->ClearEvid(); net->EditEvidence("Cont0^Dim0^0.0 Cont0^Dim1^1.0"); net->EditEvidence("Cont1^Dim0^0.0"); net->EditEvidence("Cont2^Dim0^0.0"); #ifndef PRINT_TestCondGaussianGetMPE net->GetMPE("Tab0"); #else std::cout << String(net->GetMPE("Tab0")) << "\n"; #endif delete net; std::cout << "TestCondGaussianGetMPE is completed successfully" << std::endl; };
void TestJtreeInferenceSoftMax2() { BayesNet *net = SimpleSoftMaxModel(); // all discrete nodes are observed net->EditEvidence("node5^True"); net->EditEvidence("node1^0.2"); net->SetProperty("Inference", "jtree"); TokArr jpd0 = net->GetJPD("node0"); std::cout<< "jpd node0:\t"<<jpd0 << "\n"; TokArr jpd2 = net->GetJPD("node2"); std::cout<< "jpd node2:\t"<<jpd2 << "\n"; delete net; std::cout << "TestJtreeInferenceSoftMax2 is completed successfully" << std::endl; }
void TestGibbsInferenceSoftMax() { BayesNet *net = SimpleSoftMaxModel(); // no observed nodes net->SetProperty("Inference", "gibbs"); TokArr jpd0 = net->GetJPD("node0"); std::cout<< "jpd node0:\t"<<jpd0 << "\n"; TokArr jpd1 = net->GetJPD("node1"); std::cout<< "jpd node1:\t"<<jpd1 << "\n"; TokArr jpd2 = net->GetJPD("node2"); std::cout<< "jpd node2:\t"<<jpd2 << "\n"; TokArr jpd5 = net->GetJPD("node5"); std::cout<< "jpd node5:\t"<<jpd5 << "\n"; delete net; std::cout << "TestGibbsInferenceSoftMax is completed successfully" << std::endl; }
void TestJtreeInference2SevenNodesModel() { BayesNet *net = SevenNodesModel(); // all discrete nodes are observed net->EditEvidence("node2^True"); net->EditEvidence("node3^False"); net->EditEvidence("node4^False"); net->EditEvidence("node6^True"); net->EditEvidence("node1^0.55"); net->SetProperty("Inference", "jtree"); TokArr jpd0 = net->GetJPD("node0"); std::cout<< "jpd node0:\t"<<jpd0 << "\n"; TokArr jpd5 = net->GetJPD("node1"); std::cout<< "jpd node5:\t"<<jpd5 << "\n"; delete net; std::cout << "TestJtreeInference2SevenNodesModel is completed successfully" << std::endl; }