Fixed Doxygen comments and tests

This commit is contained in:
Bazsalanszky 2020-05-10 15:11:14 +02:00
parent 61ecb1aace
commit 4f6a24b943
5 changed files with 103 additions and 55 deletions

View file

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.15) cmake_minimum_required(VERSION 3.15)
project(hf_naptar) project(hf_naptar)
set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD 98)
set(CMAKE_CXX_FLAGS "-Wall -Werror") set(CMAKE_CXX_FLAGS "-Wall -Werror")
add_library(hf_naptar Datum.h Datum.cpp evfordulo.h evfordulo.cpp Naptar.cpp Naptar.h memtrace.cpp memtrace.h) add_library(hf_naptar Datum.h Datum.cpp evfordulo.h evfordulo.cpp Naptar.cpp Naptar.h memtrace.cpp memtrace.h)
add_executable(hf_naptar_test main.cpp gtest_lite.h memtrace.cpp memtrace.h) add_executable(hf_naptar_test main.cpp gtest_lite.h memtrace.cpp memtrace.h)

16
Datum.h
View file

@ -71,14 +71,14 @@ public:
Datum& operator=(const Datum& date); Datum& operator=(const Datum& date);
virtual ~Datum() {} virtual ~Datum() {}
virtual bool equal(const Datum& d) const; virtual bool equal(const Datum& d) const;
/*! /*!
* @brief Egyenlőséget ellenőrző operátor * @brief Egyenlőséget ellenőrző operátor
* @param nap2 Az a Datum,amivel össze akarjuk hasonlítani a jelenlegi dátumot. * @param nap2 Az a Datum,amivel össze akarjuk hasonlítani a jelenlegi dátumot.
* @return Az egyenlőséget jelző logikai érték * @return Az egyenlőséget jelző logikai érték
*/ */
bool operator==(const Datum&nap1) const; bool operator==(const Datum&nap1) const;
/*! /*!
* @brief Egyenlőtlenséget ellenőrző operátor * @brief Egyenlőtlenséget ellenőrző operátor

View file

@ -12,16 +12,40 @@
#include <gtkmm/filechooserdialog.h> #include <gtkmm/filechooserdialog.h>
class MainWindow : public Gtk::Window { class MainWindow : public Gtk::Window {
/*!
* @brief Bejelöli a foglalt dátumokat a naptárban
*/
void markDay(); void markDay();
/*!
* @brief A kijelölt nap alapján frissíti a nap leírásának szövegét.
*/
void daySelected(); void daySelected();
/*!
* @brief Bezárja a névjegy ablakot
*/
void aboutWinClose(); void aboutWinClose();
/*!
* @brief Bezárja a Nap hozzáadó ablakot
*/
void addDateWinClose(); void addDateWinClose();
/*!
* @brief Megnyitja a nap hozzáadó ablakot
*/
void addDate(); void addDate();
/*!
* @brief Megnyitja az évforduló hozzáadó ablakot
*/
void addAnniversary(); void addAnniversary();
/*!
* @brief Megnyitja a névjegy ablakot
*/
void about(); void about();
/*!
* @brief Importál egy pontosvesszővel elválasztott CSV fájlt
*/
void importFile(); void importFile();
void exportFile(); void exportFile();
protected: protected:
Naptar np; Naptar np;
Glib::RefPtr<Gtk::Builder> builder; Glib::RefPtr<Gtk::Builder> builder;
Gtk::Calendar* cal; Gtk::Calendar* cal;
@ -29,7 +53,7 @@ class MainWindow : public Gtk::Window {
Gtk::MenuItem* mitem; Gtk::MenuItem* mitem;
AboutWindow* aboutw; AboutWindow* aboutw;
AddDateWindow* addDatew; AddDateWindow* addDatew;
public: public:
MainWindow(BaseObjectType* b,const Glib::RefPtr<Gtk::Builder>& refGlade); MainWindow(BaseObjectType* b,const Glib::RefPtr<Gtk::Builder>& refGlade);
virtual ~MainWindow(); virtual ~MainWindow();
}; };

View file

@ -10,6 +10,7 @@
#include <cstring> #include <cstring>
#include <algorithm> #include <algorithm>
#include <fstream> #include <fstream>
#include <iterator>
#include "Datum.h" #include "Datum.h"
@ -24,7 +25,9 @@ class Naptar {
Datum **napok; Datum **napok;
//! A tömb aktuális mérete //! A tömb aktuális mérete
size_t db; size_t db;
/*!
* @brief Rendezi a dinamikusan foglalt tömböt, időrendben növekvőre.
*/
void rendez(); void rendez();
public: public:
class iterator; class iterator;
@ -43,6 +46,9 @@ public:
/*! /*!
* @brief Konstruktor első elemmel * @brief Konstruktor első elemmel
* @param n Az első elem * @param n Az első elem
* \code{.cpp}
* Naptar np(new Datum());
* \endcode
*/ */
Naptar(Datum* n); Naptar(Datum* n);
@ -85,7 +91,7 @@ public:
/*! /*!
* @brief Hozzáad egy új elemet a listához. * @brief Hozzáad egy új elemet a listához.
* @param n A hozzáadandó datum osztály * @param n A hozzáadandó datum osztály mutató
* @warning Ha a dátum már foglalt, kivételt dob. * @warning Ha a dátum már foglalt, kivételt dob.
*/ */
void hozzaad(Datum* n); void hozzaad(Datum* n);
@ -99,17 +105,25 @@ public:
*/ */
void hozzaad(int ev, int honap, int nap); void hozzaad(int ev, int honap, int nap);
/*! /*!
* @brief Kiirja a megadott évre tervezett eseményeket * @brief Kiírja a megadott évre tervezett eseményeket
* @param ev Az év,amely eseményeit szeretnénk kiírni * @param ev Az év,amely eseményeit szeretnénk kiírni
* @param os A stream amire kiírja
* @param spacer A karakter,amivel a tagokat elválasztja
*/ */
void printTable(int ev,std::ostream& os=std::cout,char spacer='\t'); void printTable(int ev,std::ostream& os=std::cout,char spacer='\t');
/*! /*!
* @brief Kiirja a megadott hónapra tervezett eseményeket * @brief Kiírja a megadott hónapra tervezett eseményeket
* @param ev Az év,amely eseményeit szeretnénk kiírni * @param ev Az év,amely eseményeit szeretnénk kiírni
* @param honap A hónap,amely eseményeit szeretnénk kiírni * @param honap A hónap,amely eseményeit szeretnénk kiírni
* @param os A stream amire kiírja
* @param spacer A karakter,amivel a tagokat elválasztja
*/ */
void printTable(int ev,int honap,std::ostream& os=std::cout,char spacer='\t'); void printTable(int ev,int honap,std::ostream& os=std::cout,char spacer='\t');
/*!
* @brief Kiírja az összes bejegyzett eseményt
* @param os A stream amire kiírja
* @param spacer A karakter,amivel a tagokat elválasztja
*/
void printAll(std::ostream& os=std::cout,char spacer='\t'); void printAll(std::ostream& os=std::cout,char spacer='\t');
/*! /*!
* @brief A naptár tartalmát kimenti egy CSV fájlba * @brief A naptár tartalmát kimenti egy CSV fájlba
@ -118,14 +132,18 @@ public:
* A CSV táblázat oszlopai pontosvesszővel( ; ),a sorai sortöréssel vannak elválasztva. * A CSV táblázat oszlopai pontosvesszővel( ; ),a sorai sortöréssel vannak elválasztva.
*/ */
void exportCSV(const char* path); void exportCSV(const char* path);
/*!
* @brief Egy CSV fájlból kiolvas Dátumokat,és ha szabad, behelyezi azokat a naptárba.
* @param path A fájl elérési útvonala
* @note A CSV táblázat oszlopai pontosvesszővel( ; ),a sorai sortöréssel vannak elválasztva.
*/
void importCSV(const char* path);
/*! /*!
* @brief Destruktor. Itt törlődik az összes elem. * @brief Destruktor. Itt törlődik az összes elem.
*/ */
void importCSV(const char* path);
virtual ~Naptar(); virtual ~Naptar();
/*! /*!
* @brief Bejáró kezdete * @brief Bejáró kezdete
* @return Bejáró kezdete * @return Bejáró kezdete
@ -147,29 +165,17 @@ public:
* @note Az események időrendi sorrendben vannak * @note Az események időrendi sorrendben vannak
*/ */
iterator at(size_t id); iterator at(size_t id);
/*!
* @brief Érték adó operátor
* @param np A lemásolandó Naptár objektum
* @return A lemásolt objektum
*/
Naptar&operator=(const Naptar& np);
/*!
* Másoló konstruktor
* @param np A lemásolandó Naptár objektum
*/
Naptar(Naptar& np);
/*! /*!
* Tömb iteráló(bejáró) * Tömb iteráló(bejáró)
*/ */
class iterator { class iterator{
//! Mutató az aktuális elemre //! Mutató az aktuális elemre
Datum **akt; Datum **akt;
//! Mutató a tömb végére //! Mutató a tömb végére
Datum **veg; Datum **veg;
public: public:
//! Paraméter nélkül hívható konstruktor //! Paraméter nélkül hívható konstruktor
iterator() : akt(nullptr), veg(nullptr) {}; iterator() : akt(NULL), veg(NULL) {};
/*! /*!
* @param nptr Naptár osztály,amihez szeretnénk a bejárót * @param nptr Naptár osztály,amihez szeretnénk a bejárót
@ -187,19 +193,35 @@ public:
* @brief iterator léptetése (preinkrementer) * @brief iterator léptetése (preinkrementer)
*/ */
iterator operator++(); iterator operator++();
/*!
* @brief iterator léptetése visszafelé
*/
iterator operator--(); iterator operator--();
/*!
* @brief iterator léptetése egy megadott számmal előre
* @param n Ahánnyal léptetni szeretnénk
*/
iterator operator+(int n); iterator operator+(int n);
/*!
* @brief iterator léptetése egy megadott számmal hátra
* @param n Ahánnyal léptetni szeretnénk
*/
iterator operator-(int n); iterator operator-(int n);
/*!
* @brief Két iterátort összehasonlít az alapján,hogy melyik van közelebba végéhez
*/
bool operator<(iterator i); bool operator<(iterator i);
/*! /*!
* @brief iterator léptetése (postinkrementer) * @brief iterator léptetése (postinkrementer)
*/ */
iterator operator++(int i); iterator operator++(int i);
/*!
* @brief iterator léptetése visszafelé
*/
iterator operator--(int i); iterator operator--(int i);
/*!
* @brief Nyil operátor
*/
Datum *operator->(); Datum *operator->();
/*! /*!
@ -222,12 +244,6 @@ public:
* @return Vissza adja, hogy mennyi adat van a két iterátor között * @return Vissza adja, hogy mennyi adat van a két iterátor között
*/ */
int operator-(const iterator &it); int operator-(const iterator &it);
using difference_type = std::ptrdiff_t;
using value_type = Datum;
using pointer = const Datum**;
using reference = const Datum&;
using iterator_category = std::random_access_iterator_tag;
}; };
}; };

View file

@ -12,7 +12,10 @@
Naptar np; Naptar np;
int main() { int main() {
#if NAPTAR_TESZT >= 1 #if NAPTAR_TESZT >= 1
TEST(Datum,ALL){
Datum n1; Datum n1;
EXPECT_EQ(n1.getEv(),1970) << "Rossz alapértelmezett év!"; EXPECT_EQ(n1.getEv(),1970) << "Rossz alapértelmezett év!";
EXPECT_EQ(n1.getHonap(),1) << "Rossz alapértelmezett hónap"; EXPECT_EQ(n1.getHonap(),1) << "Rossz alapértelmezett hónap";
@ -26,10 +29,11 @@ int main() {
EXPECT_EQ(n1,n1) << "Rossz a hasonlítas?"; EXPECT_EQ(n1,n1) << "Rossz a hasonlítas?";
EXPECT_NE(n1,n2) << "Rossz a hasonlítas?"; EXPECT_NE(n1,n2) << "Rossz a hasonlítas?";
EXPECT_FALSE(n1 > n2) << "Rossz a hasonlítas?"; EXPECT_FALSE(n1 > n2) << "Rossz operator>";
EXPECT_TRUE(n1 < n2) << "Rossz a hasonlítas?"; EXPECT_TRUE(n1 < n2) << "Rossz operator>";
EXPECT_TRUE(n1 <= n2) << "Rossz a hasonlítas?"; EXPECT_TRUE(n1 <= n2) << "Rossz operator<=";
EXPECT_TRUE(n1 <= n1) << "Rossz a hasonlítas?"; EXPECT_TRUE(n1 <= n1) << "Rossz operator<=";
EXPECT_TRUE(n1 != n2) << "Rossz operator!=";
Datum n3 = n2; Datum n3 = n2;
EXPECT_TRUE(n2 == n3) << "Rossz masolo!"; EXPECT_TRUE(n2 == n3) << "Rossz masolo!";
n2 = n2; n2 = n2;
@ -46,10 +50,11 @@ int main() {
EXPECT_EQ(n2.getUnixTime(),958435200) << "Rossz Unix ido!"; EXPECT_EQ(n2.getUnixTime(),958435200) << "Rossz Unix ido!";
} END
#endif #endif
#if NAPTAR_TESZT >= 2 #if NAPTAR_TESZT >= 2
TEST(Naptar,ALL) {
Naptar np1; Naptar np1;
EXPECT_EQ(np1.size(), (size_t)0) << "Rossz meret!"; EXPECT_EQ(np1.size(), (size_t)0) << "Rossz meret!";
@ -59,19 +64,22 @@ int main() {
np1.hozzaad(new Datum(2000,5,16,"Ekkor szulettem")); np1.hozzaad(new Datum(2000,5,16,"Ekkor szulettem"));
np1.hozzaad(new Datum()); np1.hozzaad(new Datum());
EXPECT_EQ(1970,np1.at(0)->getEv()) << "Nem jó a rendezés?";
// np1.exportCSV("test.csv"); // np1.exportCSV("test.csv");
np1.importCSV("test.csv"); np1.importCSV("test.csv");
np1.printAll(); np1.printAll();
EXPECT_EQ(np1.size() , (size_t)2) << "Rossz meret!"; EXPECT_EQ((size_t)2,np1.size()) << "Rossz meret!";
np1.felszabadit(n1); np1.felszabadit(Datum());
EXPECT_EQ(np1.size() , (size_t)1) << "Rossz meret!"; EXPECT_EQ((size_t)1,np1.size()) << "Rossz meret!";
np1.printTable(2000); np1.printTable(2000);
np1.printTable(2000,5); np1.printTable(2000,5);
EXPECT_TRUE(np1.foglalt(n2)) << "Hibas foglaltsag ellenorzes!"; EXPECT_TRUE(np1.foglalt(Datum(2000,5,16))) << "Hibas foglaltsag ellenorzes!";
np1.urit();
EXPECT_EQ((size_t)0, np1.size());
Naptar np3( new Evfordulo(2017,6,16)); Naptar np3( new Evfordulo(2017,6,16));
EXPECT_TRUE(np3.foglalt(Datum(2020,6,16))); EXPECT_TRUE(np3.foglalt(Datum(2020,6,16))) << "Nem jó a kollekció?";
} END
#endif // NAPTAR_TESZT #endif // NAPTAR_TESZT
return 0; return 0;
} }