diff --git a/snippets/CMakeLists.txt b/snippets/CMakeLists.txt index 9ebb729..be599e4 100644 --- a/snippets/CMakeLists.txt +++ b/snippets/CMakeLists.txt @@ -39,7 +39,7 @@ endif() add_executable(compte_mots compte_mots.cpp) -add_executable(parseXML xmlParser.cpp xmlParser.h Circle.h Circle.cpp) +add_executable(parseXML xmlParser.cpp xmlParser.h Circle.h) find_path(PugiXML_INCLUDE_DIR pugixml.hpp) target_link_libraries(parseXML pugixml) @@ -48,7 +48,7 @@ target_link_directories(parseXML PRIVATE ${PugiXML_INCLUDE_DIR}) if(GTest_FOUND) - add_executable(xmlTest gTestXMLParser.cpp Circle.h xmlParser.h xmlParser.cpp Circle.cpp) + add_executable(xmlTest gTestXMLParser.cpp Circle.h xmlParser.h xmlParser.cpp) target_include_directories(xmlTest PRIVATE ${PugiXML_INCLUDE_DIR}) target_link_directories(xmlTest PRIVATE ${PugiXML_INCLUDE_DIR}) diff --git a/snippets/Circle.cpp b/snippets/Circle.cpp deleted file mode 100644 index 8b2243c..0000000 --- a/snippets/Circle.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// -// Created by trotfunky on 14/05/19. -// - -#include "Circle.h" - -namespace xmlParser -{ - Circle::Circle() : x(0), y(1), r(2), label("Test circle") - {} - - Circle::Circle(pugi::xml_node& node) : x(node.attribute("x").as_int(0)), y(node.attribute("y").as_int(1)), - r(node.attribute("r").as_int(2)), label(node.attribute("label").as_string("Test circle")) - {} -} \ No newline at end of file diff --git a/snippets/Circle.h b/snippets/Circle.h index 2a90cab..d626800 100644 --- a/snippets/Circle.h +++ b/snippets/Circle.h @@ -10,17 +10,22 @@ namespace xmlParser { - class Circle + typedef struct Circle { - public: - Circle(); - explicit Circle(pugi::xml_node&); - int x; int y; int r; std::string label; - }; + + void initCirle() { x = 0; y = 1; r = 2; label = "Test circle";} + void initCircle(pugi::xml_node node) + { + x = node.attribute("x").as_int(0); + y = node.attribute("y").as_int(1); + r = node.attribute("r").as_int(2); + label = node.attribute("label").as_string("Test circle"); + } + } Circle; } #endif //SNIPPETS_CIRCLE_H diff --git a/snippets/Polynomial.tpp b/snippets/Polynomial.tpp index 04a2dd9..96f06df 100644 --- a/snippets/Polynomial.tpp +++ b/snippets/Polynomial.tpp @@ -35,7 +35,7 @@ public: bool equals(const Polynomial&) const; template - auto add(const Polynomial& operand) const -> Polynomial; + auto add(const Polynomial& operand) const -> Polynomial(0) + operand[0])>; template friend std::ostream& operator<<(std::ostream&, const Polynomial&); @@ -62,7 +62,6 @@ private: template Polynomial::Polynomial() { - // Not bad, but could be better with C++20. Not that useful either static_assert(std::is_arithmetic::value,"Polynomial must be of an arithmetic type!"); factors = {0}; } @@ -198,7 +197,7 @@ bool Polynomial::equals(const Polynomial& operand) const template template -auto Polynomial::add(const Polynomial& operand) const -> Polynomial +auto Polynomial::add(const Polynomial& operand) const -> Polynomial(0) + operand[0])> { bool isLargest = true; @@ -213,7 +212,7 @@ auto Polynomial::add(const Polynomial& operand) const -> Polynomial resultPolynomial = {}; + std::vector(0)+operand[0])> resultPolynomial = {}; resultPolynomial.reserve(largestSize); for(int i = 0;i::add(const Polynomial& operand) const -> Polynomial(resultPolynomial); + return Polynomial(0)+operand[0])>(resultPolynomial); } //////////////////// diff --git a/snippets/gTestXMLParser.cpp b/snippets/gTestXMLParser.cpp index 5687076..4883700 100644 --- a/snippets/gTestXMLParser.cpp +++ b/snippets/gTestXMLParser.cpp @@ -9,7 +9,8 @@ TEST(readXML,initEmptyCircle) { - xmlParser::Circle cercle = xmlParser::Circle(); + xmlParser::Circle cercle; + cercle.initCirle(); ASSERT_EQ(cercle.x,0); ASSERT_EQ(cercle.y,1); @@ -19,8 +20,9 @@ TEST(readXML,initEmptyCircle) TEST(readXML,initEmptyCirclePugiXML) { - xmlParser::Circle cercle = xmlParser::Circle(); + xmlParser::Circle cercle; pugi::xml_node node; + cercle.initCircle(node); ASSERT_EQ(cercle.x,0); ASSERT_EQ(cercle.y,1); @@ -37,13 +39,9 @@ TEST(readXML,parseXMLCircle) pugi::xml_parse_result result = doc.load_string(xml.c_str()); EXPECT_NE(0,result); - pugi::xml_node node = doc.child("Circle"); - xmlParser::Circle cercle = xmlParser::Circle(node); + xmlParser::Circle cercle; - ASSERT_EQ(cercle.x,0); - ASSERT_EQ(cercle.y,1); - ASSERT_EQ(cercle.r,2); - ASSERT_EQ(cercle.label,"testCircle"); + cercle.initCircle(doc.child("Circle")); } int main(int argc, char** argv)