From c28623442eff088205f1a75c0d8b17af3a8e56fe Mon Sep 17 00:00:00 2001 From: aortigos Date: Fri, 24 Apr 2026 01:20:07 +0200 Subject: [PATCH] ex00 edge cases and execute function --- ex00/BitcoinExchange/BitcoinExchange.cpp | 110 ++++++++++++++++++++++- ex00/BitcoinExchange/BitcoinExchange.hpp | 5 ++ ex00/BitcoinExchange/BitcoinExchange.o | Bin 74032 -> 0 bytes ex00/btc | Bin 51832 -> 0 bytes ex00/input.txt | 10 +++ ex00/main.cpp | 13 +-- ex00/main.o | Bin 4584 -> 0 bytes 7 files changed, 132 insertions(+), 6 deletions(-) delete mode 100644 ex00/BitcoinExchange/BitcoinExchange.o delete mode 100755 ex00/btc create mode 100644 ex00/input.txt delete mode 100644 ex00/main.o diff --git a/ex00/BitcoinExchange/BitcoinExchange.cpp b/ex00/BitcoinExchange/BitcoinExchange.cpp index cc0d884..6755c56 100644 --- a/ex00/BitcoinExchange/BitcoinExchange.cpp +++ b/ex00/BitcoinExchange/BitcoinExchange.cpp @@ -63,8 +63,116 @@ void BitcoinExchange::readDatabase(std::ifstream &db) date = line.substr(0, pos); price = line.substr(pos + 1); - this->data[date] = std::strtod(price.c_str(), NULL); } +} +void BitcoinExchange::execute(std::ifstream &db) +{ + std::string line; + std::getline(db, line); + + if (line != "date | value") + throw std::exception(); + + size_t pos; + std::string date; + std::string value; + + while (std::getline(db, line)) + { + pos = line.find('|'); + if (pos == std::string::npos) + { + cout << "Error: bad input => " << line << endl; + continue; + } + date = line.substr(0, pos - 1); + value = line.substr(pos + 2); + + if (!validateAll(date, value)) + continue ; + + std::map::iterator it = this->data.lower_bound(date); + if (it == this->data.begin() && it->first != date) + { + cout << "Error: bad input => " << date << endl; + continue; + } + if (it->first != date) + it--; + + cout << date << " => " << value << " = " << it->second * std::strtod(value.c_str(), NULL) << endl; + } +} + +bool BitcoinExchange::validateAll(const std::string &date, const std::string &value) +{ + + if (!validateDate(date)) + { + cout << "Error: bad input => " << date << endl; + return (false); + } + else if (validateValue(value) == 2) + { + cout << "Error: not a positive number." << endl; + return (false); + } + else if (validateValue(value) == 3) + { + cout << "Error: too large a number." << endl; + return (false); + } + return (true); +} + +bool BitcoinExchange::validateDate(const std::string &date) +{ + int maxDay = 31; + int year; + int month; + int day; + char dash; + bool bisiesto; + + + if (date.length() != 10 || date[4] != '-' || date[7] != '-') + return (false); + + std::istringstream ss(date); + ss >> year >> dash >> month >> dash >> day; + bisiesto = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0); + + if (year < 2008) + return (false); + if (month < 1 || month > 12) + return (false); + if (month == 2) + { + if (bisiesto) + maxDay = 29; + else + maxDay = 28; + } + if (day < 1 || day > maxDay) + return (false); + + return (true); + +} + +int BitcoinExchange::validateValue(const std::string &value) +{ + char *endptr; + double val = std::strtod(value.c_str(), &endptr); + + if (*endptr != '\0') + return (1); + if (val < 0) + return (2); + else if (val > 1000) + return (3); + return (0); + } \ No newline at end of file diff --git a/ex00/BitcoinExchange/BitcoinExchange.hpp b/ex00/BitcoinExchange/BitcoinExchange.hpp index 0988260..65fd925 100644 --- a/ex00/BitcoinExchange/BitcoinExchange.hpp +++ b/ex00/BitcoinExchange/BitcoinExchange.hpp @@ -25,6 +25,10 @@ class BitcoinExchange { private: std::map data; + + bool validateAll(const std::string &date, const std::string &value); + bool validateDate(const std::string &date); + int validateValue(const std::string &value); public: BitcoinExchange(); @@ -33,6 +37,7 @@ class BitcoinExchange ~BitcoinExchange(); void readDatabase(std::ifstream &db); + void execute(std::ifstream &db); }; #endif diff --git a/ex00/BitcoinExchange/BitcoinExchange.o b/ex00/BitcoinExchange/BitcoinExchange.o deleted file mode 100644 index db721ec9cb62f6f666e03319f94df228e1ff347e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74032 zcmd5_3w)Htwf~ZUQi~FiR$9@<_yUVa0C^~C5LOofO$qp_xP)XO(Y#DH2v#f#S|XtM zK=IY0^(xn5rD~P7J|bGdYQ5BIr9P>p3I=VeR;hZg_kU*2eBaq`XV@$uZ05&i=KIe% zbIzPO^Za&)A4evhnwyj3nULe14jxXf+BE;34uHm>AaUG`{5I1rPI8^nAouaQaHb3pl+H@l~9@8u3p!y$EqLr>{Z0nA1xTFXi;L9AAfc8K%JE}}*K+zdh=0rJ-*Nmn z$4?-BlG9Id+=BRNPOn4!45yz({CiG6$MJfOH*ows;y-Zu1;j6M`i~sHg!q3ry%F)B zIQ=r>KXdvOj$cLm7f!#%@g|P{iuiR-zk&EoPQQitZBA3S+05y`ar`dgzjJyE$Nxb5 z9;e?&yp_}25P!hwR>a#m{UOI6A^s<)+YtYY(;svE3F1#V{cpsdar$$_J2?Fx#9wgw zOT=H{^GUBmzL*+q{zr7d_WWq`ydBZSksZ>RU3%4Ym1(MT6%j?3F4t%v zo#~c-i%b&@)LPh*h&Ie^TFM z-%}2szigW9LItYxQWt8Tx;46B-d3+^ZyJ-mRu~S*;z`_{UNU;4cc*kg(Un9liPoL7 zO~_x&DB22}|7g(P7q@9VE~diFz)J+}LB?@Yva9y<#08D{&6?&gPcKcb@T4c?f!5#@1fkIk^UgJ`-X1bXSwxAf0;)#Kk3#T^fz|{=VRS< zF+KVoc%pZfPJe624LO*Ha=I_c_1??b-}8Qxt26qHN4z|z`;$4|Jvm6W(x0zy-#=&H zAxNCjz0tdi5FNh0{otH$9gD}hr8y7e=B&@%=TEub->D=NjzIbO^Sb|cPTrNd-G7qn zJ-}JCc2c3DED;|VpHp60Ry!*mYrs=l`v_MeSA@gS6v2(k-n~q?Tri)=xukiW<_ks_ zk=wp$B~?@9x{ldIsI8|zJMn_H9O+{YA2Eed-6~;(73ej~!qd&-smoADWCe9>j;zrT z4_eKUwb7+h@c|x?Eo^BTl0>Gm4GRo6X&E>kj5hl{95d72YpKawyQ`r9&!^4o_0N`% zd+pB>G*64*fndxdlUO0YC^Y37lnzQWu##?^UeHpIJgALo9YVICxlr=7XY5l;gVZ*3 z_4WnZwYOnW(mEd2+3YK2b0v{Wo|&?6K>--)P{@LLo4uwr(qC<>jbMnR79WWg-+&fx zNojFmwo#D{YT8QFLi`3;XQOCgh~E%h(9*-N!(ze7^Ic+qqB5o@3s2pM21BEPIcR&D zP*v&NMwFX0@g%hov@njeDVdCyEu7737`c24I¥sMddh$wxiYbOMyz8i)$551&RZ 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 WGT`{y%D;7urs{UAq}IMJk^cvfWK8P- diff --git a/ex00/btc b/ex00/btc deleted file mode 100755 index 08e38be309a8d1c51e235d6daddf07c383fdc00a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51832 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 diff --git a/ex00/input.txt b/ex00/input.txt new file mode 100644 index 0000000..f9b4147 --- /dev/null +++ b/ex00/input.txt @@ -0,0 +1,10 @@ +date | value +2011-01-03 | 3 +2011-01-03 | 2 +2011-01-03 | 1 +2011-01-03 | 1.2 +2011-01-09 | 1 +2012-01-11 | -1 +2001-42-42 +2012-01-11 | 1 +2012-01-11 | 2147483648 \ No newline at end of file diff --git a/ex00/main.cpp b/ex00/main.cpp index 0c24697..56a4918 100644 --- a/ex00/main.cpp +++ b/ex00/main.cpp @@ -6,7 +6,7 @@ /* By: aortigos nx3ja`SF*ib$wY#YB-m~?HzLZ|*wVRvyXdyF)ohi}T>|6#;X*r9TL#y!jgQg9lZhU1&~t5;5-Pkm~pL9aCECr@05(WebKQ~rw7CD!XONrJ~`{FYjv1%$-) z-P#4N&WWYS)K0#K0c&)AhBZveB0EZ;d`+(m&JOEOt`ya1JbsxLh2_(y?j-y=y?p7` z2pQ<*6K644MK%mp-K1CGF978$)o&M4JyFz~hpW}92voilRC)f&Zq>_4DxNI89!lG< z3#{dIFsK~)^UF)Hn!%zmYVAyGPYwBIde^Yw8$(9X+Rd__=XyKSraO@zPCKrjb_MHX1(2@zdng~GZ4Bj2V(rN zal>{rvru6CaL#YZ*lv;IlgRV-kY{+4+;(jLn9yQ-pV2&PMB{w4RN@88E4q%6xBW?e ztXWvM!BgvtUcT6q^D`N9%<#DH8Ma^SF|*lzV6EWXHo05$JoB%m?nBsq;uQHC-YqB{3dcQ4 ze4pfaKHjJBrzL*^TKuLU{bwadeLRhbR}_xl9mJ;#8<$1gMx7%fQ$Hgg|AR}zrr6>_^XoRdewEkrRb~m ze@F80x;{|!)peawIM$N#JQu?+DqLOHcM4b6^^?N!8<70}q43oT|4ZSjelzHxU>(+q z-uxdlduToqBjjrojoGTQH4AsDV8#@0vzlqk}yBwEnMh)TytT?)bRn zKtk}TW@+$Yv_+f~ay;rxXax_x;5>g)W@3%;5zl}VLmTzni9&7J_u9D$hPYqC(k=n+ zNff+4cz>zZ)W+HOq7jH{kN1`As7(XIy|5TARSwAkeJ|0R+=et{>!63e+G`}}==e~A zOv_D!`Qx{y#I?P;0T}wE?@;IpIihYhg3yNJZw7`w@6{gnG5QRLdrks6|3O6vY`BliP9Gn@@IK?LrG3{q4=iImw6JjfFsCT{lFa{S Jm{%oi|1Y(CLYV*n