本文整理汇总了C++中testnodes::BinaryNode类的典型用法代码示例。如果您正苦于以下问题:C++ BinaryNode类的具体用法?C++ BinaryNode怎么用?C++ BinaryNode使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了BinaryNode类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
TEST(ModelBase, PersistenceSave)
{
Model model;
PersistentStoreMock store;
TestNodes::BinaryNode* root = dynamic_cast<TestNodes::BinaryNode*> (model.createRoot("BinaryNode"));
model.setName("root");
model.save(&store);
CHECK_STR_EQUAL("BinaryNode,root,full,Text,name,full,,Integer,_ext_PositionExtension_x,full,0,Integer,_ext_PositionExtension_y,full,0,", store.getSaved());
model.beginModification(root, "make tree");
root->setLeft<TestNodes::BinaryNode>();
root->setRight<TestNodes::BinaryNode>();
root->name()->set("Troot");
root->left()->name()->set("Tleft");
root->right()->name()->set("Tright");
model.endModification();
store.clear();
model.save();
CHECK_STR_EQUAL("BinaryNode,root,full,Text,name,full,Troot,BinaryNode,left,full,Text,name,full,Tleft,Integer,_ext_PositionExtension_x,full,0,Integer,_ext_PositionExtension_y,full,0,BinaryNode,right,full,Text,name,full,Tright,Integer,_ext_PositionExtension_x,full,0,Integer,_ext_PositionExtension_y,full,0,Integer,_ext_PositionExtension_x,full,0,Integer,_ext_PositionExtension_y,full,0,", store.getSaved());
}
示例2:
TEST(ModelBase, SimpleModelCreation)
{
Model model;
CHECK_CONDITION( model.root() == nullptr );
TestNodes::BinaryNode* root = dynamic_cast<TestNodes::BinaryNode*> (model.createRoot("BinaryNode"));
CHECK_CONDITION( model.root() == root );
CHECK_CONDITION( root->model() == &model );
CHECK_CONDITION( root->name()->model() == &model );
}
示例3:
TEST(FilePersistence, SaveMultipleUnits)
{
QString testDir = QDir::tempPath() + QDir::toNativeSeparators("/Envision/FilePersistence/tests");
Model::Model model;
FileStore store;
store.setBaseFolder(testDir);
TestNodes::BinaryNode* root = dynamic_cast<TestNodes::BinaryNode*> (model.createRoot("BinaryNode"));
model.beginModification(root, "set title");
root->name()->set("Root");
TestNodes::BinaryNode* left = root->setLeft<TestNodes::BinaryNodePersistenceUnit>();
TestNodes::BinaryNode* right = root->setRight<TestNodes::BinaryNode>();
left->name()->set("Left child");
TestNodes::BinaryNode* leftleft = left->setLeft<TestNodes::BinaryNode>();
leftleft->name()->set("in a new unit");
right->name()->set("Right child");
model.endModification();
model.setName("units");
model.save(&store);
CHECK_TEXT_FILES_EQUAL(":/FilePersistence/test/persisted/units/units", testDir + "/units/units");
CHECK_TEXT_FILES_EQUAL(":/FilePersistence/test/persisted/units/2", testDir + "/units/2");
}
示例4:
TEST(FilePersistence, LoadRootOnly)
{
QString testDir = ":/FilePersistence/test/persisted";
Model::Model model;
FileStore store;
store.setBaseFolder(testDir);
model.load(&store, "rootOnly");
TestNodes::BinaryNode* root = dynamic_cast<TestNodes::BinaryNode*> (model.root());
CHECK_CONDITION(root);
CHECK_STR_EQUAL("BinaryNode", root->typeName() );
CHECK_STR_EQUAL("Title", root->name()->get() );
CHECK_CONDITION(root->left() == nullptr);
CHECK_CONDITION(root->right() == nullptr);
}
示例5: TestBoxNode
TEST(VisualizationBase, ExtendableTest)
{
Model::Model* model = new Model::Model();
Model::List* list = static_cast<Model::List*> (model->createRoot("List"));
model->beginModification(list, "set");
TestNodes::BinaryNode* first = new TestNodes::BinaryNode();
list->append(first);
TestNodes::BinaryNode* second = new TestNodes::BinaryNode();
list->append(second);
Model::Text* third = new Model::Text();
list->append(third);
first->name()->set("First node");
TestNodes::BinaryNode* left = new TestNodes::BinaryNode();
first->setLeft(left);
TestNodes::BinaryNode* right = new TestNodes::BinaryNode();
first->setRight(right);
left->name()->set("left node");
right->name()->set("right node");
second->name()->set("Empty node");
third->set("Some independent text");
list->append(new TestBoxNode("someText"));
list->append(new TestBoxNode("stretch", true));
model->endModification();
auto top = new RootItem(list);
auto scene = VisualizationManager::instance().mainScene();
scene->addTopLevelItem( top );
QApplication::processEvents();
VList* l = dynamic_cast<VList*> (top->item());
l->itemAt<VExtendable>(1)->setExpanded(false);
scene->scheduleUpdate();
scene->listenToModel(model);
CHECK_CONDITION(scene);
}
示例6: Scene
TEST(InteractionBase, TextSelect)
{
Scene* scene = new Scene();
Model::Model* model = new Model::Model();
Model::List* list = static_cast<Model::List*> (model->createRoot("List"));
model->beginModification(list, "set");
TestNodes::BinaryNode* first = new TestNodes::BinaryNode();
list->append(first);
TestNodes::BinaryNode* second = new TestNodes::BinaryNode();
list->append(second);
Model::Text* third = new Model::Text();
list->append(third);
first->name()->set("First node");
TestNodes::BinaryNode* left = new TestNodes::BinaryNode();
first->setLeft(left);
TestNodes::BinaryNode* right = new TestNodes::BinaryNode();
first->setRight(right);
left->name()->set("left node");
right->name()->set("right node");
second->name()->set("Empty node");
third->set("Some independent text");
model->endModification();
VList* l = dynamic_cast<VList*> (scene->renderer()->render(nullptr, list));
scene->addTopLevelItem(l);
scene->scheduleUpdate();
QApplication::processEvents();
l->at<VExtendable>(0)->setExpanded();
scene->scheduleUpdate();
scene->listenToModel(model);
// Create view
MainView* view = new MainView(scene);
CHECK_CONDITION(view != nullptr);
}
示例7: nl
TEST(ModelBase, ModificationNotificationTests)
{
Model model;
NotificationListener nl(model);
CHECK_CONDITION(nl.root == nullptr);
CHECK_INT_EQUAL(0, nl.modifiedNodes.size());
TestNodes::BinaryNode* root = dynamic_cast<TestNodes::BinaryNode*> (model.createRoot("BinaryNode"));
CHECK_CONDITION(root == nl.root);
model.beginModification(root, "make tree");
TestNodes::BinaryNode* left = new TestNodes::BinaryNode();
TestNodes::BinaryNode* right = new TestNodes::BinaryNode();
root->setLeft(left);
root->setRight(right);
model.endModification();
CHECK_INT_EQUAL(1, nl.modifiedNodes.size());
CHECK_CONDITION(nl.modifiedNodes[0] == root);
model.beginModification(left, "modify");
left->name()->set("Left text");
model.changeModificationTarget(right);
right->name()->set("Right text");
model.endModification();
CHECK_INT_EQUAL(4, nl.modifiedNodes.size());
CHECK_CONDITION(nl.modifiedNodes[0] == left);
CHECK_CONDITION(nl.modifiedNodes[1] == left->name());
CHECK_CONDITION(nl.modifiedNodes[2] == right);
CHECK_CONDITION(nl.modifiedNodes[3] == right->name());
nl.modifiedNodes.clear();
model.beginModification(nullptr);
model.undo();
model.undo();
model.endModification();
CHECK_INT_EQUAL(5, nl.modifiedNodes.size());
CHECK_CONDITION(nl.modifiedNodes[0] == right);
CHECK_CONDITION(nl.modifiedNodes[1] == right->name());
CHECK_CONDITION(nl.modifiedNodes[2] == left);
CHECK_CONDITION(nl.modifiedNodes[3] == left->name());
CHECK_CONDITION(nl.modifiedNodes[4] == root);
}
示例8:
TEST(ModelBase, SingleWriteUnitCheck)
{
Model model;
TestNodes::BinaryNode* root = dynamic_cast<TestNodes::BinaryNode*> (model.createRoot("BinaryNode"));
model.beginModification(root, "make tree");
TestNodes::BinaryNode* left = root->setLeft<TestNodes::BinaryNode>();
TestNodes::BinaryNode* right = root->setRight<TestNodes::BinaryNodeAccessUnit>();
TestNodes::BinaryNode* one = root->left()->setLeft<TestNodes::BinaryNodeAccessUnit>();
TestNodes::BinaryNode* two = root->left()->setRight<TestNodes::BinaryNodeAccessUnit>();
model.endModification();
CHECK_STR_EQUAL(QString(), root->name()->get());
CHECK_STR_EQUAL(QString(), left->name()->get());
CHECK_STR_EQUAL(QString(), right->name()->get());
CHECK_STR_EQUAL(QString(), one->name()->get());
CHECK_STR_EQUAL(QString(), two->name()->get());
model.beginModification(root, "Modify root");
root->name()->set("This is ok");
CHECK_STR_EQUAL("This is ok", root->name()->get());
CHECK_FOR_EXCEPTION(ModelException, one->name()->set("This should fail"));
CHECK_STR_EQUAL(QString(), one->name()->get());
model.changeModificationTarget(one);
CHECK_FOR_EXCEPTION(ModelException, root->name()->set("This should fail"));
CHECK_STR_EQUAL("This is ok", root->name()->get());
one->name()->set("one set");
CHECK_STR_EQUAL("one set", one->name()->get());
model.endModification();
model.beginModification(nullptr);
model.undo();
model.endModification();
CHECK_STR_EQUAL(QString(), root->name()->get());
CHECK_STR_EQUAL(QString(), left->name()->get());
CHECK_STR_EQUAL(QString(), right->name()->get());
CHECK_STR_EQUAL(QString(), one->name()->get());
CHECK_STR_EQUAL(QString(), two->name()->get());
model.beginModification(nullptr);
model.redo();
model.endModification();
CHECK_STR_EQUAL("This is ok", root->name()->get());
CHECK_STR_EQUAL(QString(), left->name()->get());
CHECK_STR_EQUAL(QString(), right->name()->get());
CHECK_STR_EQUAL("one set", one->name()->get());
CHECK_STR_EQUAL(QString(), two->name()->get());
}