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)
project(hf_naptar)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 98)
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_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);
virtual ~Datum() {}
virtual bool equal(const Datum& d) const;
/*!
* @brief Egyenlőséget ellenőrző operátor
* @param nap2 Az a Datum,amivel össze akarjuk hasonlítani a jelenlegi dátumot.
* @return Az egyenlőséget jelző logikai érték
*/
bool operator==(const Datum&nap1) const;
virtual ~Datum() {}
virtual bool equal(const Datum& d) const;
/*!
* @brief Egyenlőséget ellenőrző operátor
* @param nap2 Az a Datum,amivel össze akarjuk hasonlítani a jelenlegi dátumot.
* @return Az egyenlőséget jelző logikai érték
*/
bool operator==(const Datum&nap1) const;
/*!
* @brief Egyenlőtlenséget ellenőrző operátor

View file

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

View file

@ -10,6 +10,7 @@
#include <cstring>
#include <algorithm>
#include <fstream>
#include <iterator>
#include "Datum.h"
@ -24,7 +25,9 @@ class Naptar {
Datum **napok;
//! A tömb aktuális mérete
size_t db;
/*!
* @brief Rendezi a dinamikusan foglalt tömböt, időrendben növekvőre.
*/
void rendez();
public:
class iterator;
@ -43,6 +46,9 @@ public:
/*!
* @brief Konstruktor első elemmel
* @param n Az első elem
* \code{.cpp}
* Naptar np(new Datum());
* \endcode
*/
Naptar(Datum* n);
@ -85,7 +91,7 @@ public:
/*!
* @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.
*/
void hozzaad(Datum* n);
@ -99,17 +105,25 @@ public:
*/
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 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');
/*!
* @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 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');
/*!
* @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');
/*!
* @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.
*/
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.
*/
void importCSV(const char* path);
virtual ~Naptar();
/*!
* @brief Bejáró kezdete
* @return Bejáró kezdete
@ -147,29 +165,17 @@ public:
* @note Az események időrendi sorrendben vannak
*/
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ó)
*/
class iterator {
class iterator{
//! Mutató az aktuális elemre
Datum **akt;
//! Mutató a tömb végére
Datum **veg;
public:
//! 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
@ -187,19 +193,35 @@ public:
* @brief iterator léptetése (preinkrementer)
*/
iterator operator++();
/*!
* @brief iterator léptetése visszafelé
*/
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);
/*!
* @brief iterator léptetése egy megadott számmal hátra
* @param n Ahánnyal léptetni szeretnénk
*/
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);
/*!
* @brief iterator léptetése (postinkrementer)
*/
iterator operator++(int i);
/*!
* @brief iterator léptetése visszafelé
*/
iterator operator--(int i);
/*!
* @brief Nyil operátor
*/
Datum *operator->();
/*!
@ -222,12 +244,6 @@ public:
* @return Vissza adja, hogy mennyi adat van a két iterátor között
*/
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;
int main() {
#if NAPTAR_TESZT >= 1
TEST(Datum,ALL){
Datum n1;
EXPECT_EQ(n1.getEv(),1970) << "Rossz alapértelmezett év!";
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_NE(n1,n2) << "Rossz a hasonlítas?";
EXPECT_FALSE(n1 > n2) << "Rossz a hasonlítas?";
EXPECT_TRUE(n1 < n2) << "Rossz a hasonlítas?";
EXPECT_TRUE(n1 <= n2) << "Rossz a hasonlítas?";
EXPECT_TRUE(n1 <= n1) << "Rossz a hasonlítas?";
EXPECT_FALSE(n1 > n2) << "Rossz operator>";
EXPECT_TRUE(n1 < n2) << "Rossz operator>";
EXPECT_TRUE(n1 <= n2) << "Rossz operator<=";
EXPECT_TRUE(n1 <= n1) << "Rossz operator<=";
EXPECT_TRUE(n1 != n2) << "Rossz operator!=";
Datum n3 = n2;
EXPECT_TRUE(n2 == n3) << "Rossz masolo!";
n2 = n2;
@ -46,10 +50,11 @@ int main() {
EXPECT_EQ(n2.getUnixTime(),958435200) << "Rossz Unix ido!";
} END
#endif
#if NAPTAR_TESZT >= 2
TEST(Naptar,ALL) {
Naptar np1;
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());
EXPECT_EQ(1970,np1.at(0)->getEv()) << "Nem jó a rendezés?";
// np1.exportCSV("test.csv");
np1.importCSV("test.csv");
np1.printAll();
EXPECT_EQ(np1.size() , (size_t)2) << "Rossz meret!";
np1.felszabadit(n1);
EXPECT_EQ(np1.size() , (size_t)1) << "Rossz meret!";
EXPECT_EQ((size_t)2,np1.size()) << "Rossz meret!";
np1.felszabadit(Datum());
EXPECT_EQ((size_t)1,np1.size()) << "Rossz meret!";
np1.printTable(2000);
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));
EXPECT_TRUE(np3.foglalt(Datum(2020,6,16)));
EXPECT_TRUE(np3.foglalt(Datum(2020,6,16))) << "Nem jó a kollekció?";
} END
#endif // NAPTAR_TESZT
return 0;
}