Commit 85d27c54 by Szeberényi Imre

ell.

parent a9506e39
......@@ -23,7 +23,7 @@
#include <cstring>
#include <cstdlib>
#include <clocale>
#if defined(WIN32) || defined(_WIN32)
#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
# include <windows.h>
# include "rendez.h" // latin-2 kódolású szövegek
#else
......
......@@ -15,7 +15,9 @@
#include "memtrace.h" // a standard header-ek után kell lennie
#include "gtest_lite.h"
#include "string5.h"
#include "rendez.h"
#if ELKESZUT >= 12 && !defined(CPORTA)
# include "rendez.h"
#endif
using std::cout;
using std::cin;
......@@ -32,10 +34,12 @@ int main() {
TEST(Elkeszult1, construct) {
String ures;
ures.printDbg("Ures sztring: "); // debug kiíratás
if (ures.size() == 0)
SUCCEED() << "Hurra! Van egy sztringem, de nem biztos, hogy ures!" << endl;
else
if (ures.size() != 0)
FAIL() << "Baj van a string hosszaval" << endl;
#ifndef CPORTA
else
SUCCEED() << "Hurra! Van egy sztringem, de nem biztos, hogy ures!" << endl;
#endif // CPORTA
} ENDM
#endif
......@@ -47,6 +51,8 @@ int main() {
TEST(Elkeszult2, emptyStr) {
String ures;
EXPECT_EQ((size_t)0, ures.size()) << "Baj van a string hosszaval" << endl;
/// Ellenőrizzük, hogy üres sztringet ("") kaptunk-e vissza?
EXPECT_STREQ("", ures.c_str()) << "Nem ures sztring jott letre" << endl;
} ENDM
#endif
......@@ -60,6 +66,7 @@ int main() {
String a(ch);
EXPECT_EQ((size_t)1, a.size()) << "Baj van a string hosszaval" << endl;
EXPECT_STREQ("a", a.c_str()) << "Karakterbol sztring letrehozasa nem sikerult!" << endl;
String b('a'); // konstansból is megy?
EXPECT_STREQ("a", b.c_str()) << "Karakterbol sztring letrehozasa nem sikerult!" << endl;
} ENDM
......@@ -76,6 +83,7 @@ int main() {
EXPECT_EQ(strlen(hello), a.size()) << "Baj van a string hosszaval" << endl;
EXPECT_STREQ(hello, a.c_str()) << "C-sztringbol string letrehozasa nem sikerult!" << endl;
/// Ellenőrizzük, hogy lemásolta-e a sztringet. Nem elég a pointert!
char cpp[] = { 'C', '+', '+', '\0' };
String b(cpp);
cpp[0] = 'X';
......@@ -94,10 +102,13 @@ int main() {
EXPECT_EQ(strlen(hello), b.size()) << "Baj van a string hosszaval!" << endl;
EXPECT_STREQ(hello, b.c_str()) << "Baj van a masolo konstruktorral!" << endl;
/// Ellenőrizzük, hogy lemásolta-e a sztringet. Nem elég a pointert!
if (a.c_str() == b.c_str()) // Ha a két pointer egyezik, akkor nem másolta le az adatot
FAIL() << "!** ctor: nem elegendo a pointereket lemasolni!" << endl;
EXPECT_STREQ(hello, a.c_str()) << "Masolo kontsr. elromlott a forras!" << endl;
EXPECT_EQ(strlen(hello), a.size()) << "Masolo konstr. alatt elromlott a forras hossza!" << endl;
const String c = a;
String d = c; // konstansból is megy?
EXPECT_STREQ(hello, d.c_str()) << "Baj van a masolo konstruktorral" << endl;
......@@ -117,14 +128,18 @@ int main() {
EXPECT_EQ(strlen(hello), a.size()) << "Baj van az ertekadassal: a = a hossz" << endl;
EXPECT_STREQ(hello, a.c_str()) << "Baj van az ertekadassal: a = a" << endl;
c = b = a;
/// Ellenőrizzük, hogy lemásolta-e a sztringet. Nem elég a pointert!
if (a.c_str() == b.c_str()) // Ha a két pointer egyezik, akkor nem másolta le az adatot
FAIL() << "!** op=: nem elegendo a pointereket lemasolni!" << endl;
EXPECT_EQ(strlen(hello), a.size()) << "Ertekedasnal elromlott a forras hossza!" << endl;
EXPECT_STREQ(hello, a.c_str()) << "Ertekadasnal elromlott a forras!" << endl;
EXPECT_EQ(strlen(hello), b.size()) << "Ertekedas: nem jo a hossz!" << endl;
EXPECT_STREQ(hello, b.c_str()) << "Ertekadas nem sikerult!" << endl;
EXPECT_EQ(strlen(hello), c.size()) << "Ertekedas: nem jo a hossz!" << endl;
EXPECT_STREQ(hello, c.c_str()) << "Ertekadas nem sikerult!" << endl;
const String d("Konst.");
c = d; // konstansból is megy?
EXPECT_EQ(c.size(), c.size()) << "Ertekedas konstansbol: nem jo a hossz!" << endl;
......@@ -146,6 +161,7 @@ int main() {
EXPECT_STREQ("Hello ", a.c_str()) << "A + muvelet elrontja a bal oldalt?" << endl;
EXPECT_STREQ("sztring", b.c_str()) << "A + muvelet elrontja a jobb oldalt?" << endl;
const String a1 = a, b1 = b;
String c1;
c1 = a1 + b1; // konstansból is megy?
EXPECT_STREQ("Hello sztring", c1.c_str()) << "Nem sikerult a + String muvelet!" << endl;
......@@ -157,6 +173,7 @@ int main() {
b = a + 'B';
EXPECT_STREQ("Hello B", b.c_str()) << "Nem sikerult a + char muvelet!" << endl;
EXPECT_STREQ("Hello ", a.c_str()) << "A + muvelet elrontja a bal oldalt?" << endl;
const String a1 = a;
String b1;
b1 = a1 + 'B'; // konstansból is megy?
......@@ -177,6 +194,7 @@ int main() {
b = h + a;
EXPECT_STREQ("Hello", b.c_str()) << "Nem sikerult char + Str muvelet!" << endl;
EXPECT_STREQ("ello", a.c_str()) << "A + muvelet elrontja a jobb oldalt?" << endl;
String b1;
b1 = 'H' + a; // konstanssal is megy?
EXPECT_STREQ("Hello", b.c_str()) << "Nem sikerult char + Str muvelet!" << endl;
......@@ -244,7 +262,7 @@ int main() {
* szorgalmi feladat feladat. Most a rendezésen van a hangsúly.
* Értse meg a rendez.cpp fájlban levő kód működését és futtassa a programot!
*/
#if ELKESZULT == 12
#if ELKESZULT == 12 && !defined(CPORTA)
rendez();
#endif
......@@ -253,12 +271,12 @@ int main() {
* szükséges nyelvi környezetet (LC_COLLATE) próbálja ki! Változott a rendezési
* sorrend?
*/
#if ELKESZULT >= 13
#if ELKESZULT >= 13 && !defined(CPORTA)
cout << endl;
/// beállítja az op.rendszer által használt nyelvi környezetet, amit feltételezünk, hogy magyar
cout << "Nyelvi beallitas: " << setlocale(LC_ALL, "") << endl;
#if defined(WIN32) || defined(_WIN32) || defined(_WIN64)
#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
/// Windows alatt egyéb varázslatra is szükség van ...
SetConsoleCP(1250);
SetConsoleOutputCP(1250);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment