void ribi::cmap::QtRateExamplesDialogNewName::Test() noexcept { { static bool is_tested = false; if (is_tested) return; is_tested = true; } TRACE("ribi::cmap::QtRateExamplesDialog::Test started"); ///Test conversion between reading and writing a concept { const int sz = ribi::cmap::ConceptFactory().GetTests().size(); for (int i=0; i!=sz; ++i) { assert(i < static_cast<int>(ConceptFactory().GetTests().size())); const auto a = QtRateExamplesDialogNewName(cmap::ConceptFactory().GetTests()[i]).GetRatedExamples(); assert(a); for (int j=0; j!=sz; ++j) { assert(j < static_cast<int>(ConceptFactory().GetTests().size())); const auto b = QtRateExamplesDialogNewName(cmap::ConceptFactory().GetTests()[j]).GetRatedExamples(); assert(b); assert(a != b); if (i == j) { assert(*a == *b); } else { assert(*a != *b); } } } } TRACE("ribi::cmap::QtRateExamplesDialog::Test finished successfully"); }
std::vector<ribi::cmap::Node> ribi::cmap::NodeFactory::GetNastyTests() const noexcept { std::vector<Node> nodes; const auto v = ConceptFactory().GetNastyTests(); std::transform(v.begin(),v.end(),std::back_inserter(nodes), [](const Concept& c) { const double x{1.2}; const double y{3.4}; const Node p{c,false,x,y}; return p; } ); return nodes; }
ribi::cmap::Edge ribi::cmap::EdgeFactory::Create( const Node& from, const Node& to ) const noexcept { //Nodes may be similar, but not the same assert(&from != &to); const double x{(from.GetX() + to.GetX()) / 2.0}; const double y{(from.GetY() + to.GetY()) / 2.0}; const auto concept = ConceptFactory().Create(); const Node node(concept,x,y); Edge p( node ); return p; }
ribi::cmap::Node ribi::cmap::NodeFactory::CreateFromStrings( const std::string& name, const std::vector<std::pair<std::string,Competency> >& examples, const double x, const double y ) const noexcept { const bool is_center_node{false}; Node node( ConceptFactory().Create(name,examples), is_center_node, x, y ); assert(node.GetX() == x); assert(node.GetY() == y); return node; }
const boost::shared_ptr<ribi::cmap::CenterNode> ribi::cmap::CenterNodeFactory::FromXml( const std::string& s ) const noexcept { if (s.size() < 27) { return nullptr; } if (s.substr(0,13) != std::string("<center_node>")) { return nullptr; } if (s.substr(s.size() - 14,14) != std::string("</center_node>")) { return nullptr; } //m_concept boost::shared_ptr<Concept> concept; { const std::vector<std::string> v = GetRegexMatches(s,QRegExp("(<concept>.*</concept>)")); assert(v.size() == 1); concept = ConceptFactory().FromXml(v[0]); } //m_x double x = 0.0; { const std::vector<std::string> v = GetRegexMatches(s,QRegExp("(<x>.*</x>)")); assert(v.size() == 1); x = boost::lexical_cast<double>(ribi::xml::StripXmlTag(v[0])); } //m_x double y = 0.0; { const std::vector<std::string> v = GetRegexMatches(s,QRegExp("(<y>.*</y>)")); assert(v.size() == 1); y = boost::lexical_cast<double>(ribi::xml::StripXmlTag(v[0])); } assert(concept); const boost::shared_ptr<CenterNode> node(new CenterNode(concept,x,y,*this)); assert(node); assert(node->ToXml() == s); return node; }
const boost::shared_ptr<ribi::cmap::CenterNode> ribi::cmap::CenterNodeFactory::DeepCopy( const boost::shared_ptr<const cmap::CenterNode>& node ) const noexcept { assert(node); assert(node->GetConcept()); const boost::shared_ptr<Concept> new_concept { ConceptFactory().DeepCopy(node->GetConcept()) }; assert(new_concept); assert(*node->GetConcept() == *new_concept); const boost::shared_ptr<CenterNode> new_node = Create(new_concept, node->GetX(), node->GetY() ); assert(new_node); assert(new_node->GetConcept()); assert(*node == *new_node); return new_node; }
const boost::shared_ptr<ribi::cmap::CenterNode> ribi::cmap::CenterNodeFactory::CreateFromStrings( const std::string& name, const std::vector<std::pair<std::string,Competency> >& examples, const double x, const double y ) const noexcept { boost::shared_ptr<CenterNode> node( new CenterNode( ConceptFactory().Create(name,examples), x, y, *this ) ); assert(node); assert(node->GetConcept()); assert(node->GetX() == x); assert(node->GetY() == y); return node; }
int ribi::cmap::EdgeFactory::GetNumberOfTests() const noexcept { return ConceptFactory().GetNumberOfTests(); }