///////////////////////////////////////////////// // Input-Output-File TFInOut::TFInOut(const TStr& FNm, const TFAccess& FAccess, const bool& CreateIfNo) : TSBase(TSStr(FNm.CStr())), FileId(NULL) { switch (FAccess){ case faCreate: FileId=fopen(FNm.CStr(), "w+b"); break; case faUpdate: FileId=fopen(FNm.CStr(), "r+b"); break; case faAppend: FileId=fopen(FNm.CStr(), "r+b"); if (FileId!=NULL){fseek(FileId, SEEK_END, 0);} break; case faRdOnly: FileId=fopen(FNm.CStr(), "rb"); break; default: Fail; } if ((FileId==NULL)&&(CreateIfNo)){FileId=fopen(FNm.CStr(), "w+b");} IAssert(FileId!=NULL); }
TEST(TStr, Constructors) { TStr Default; TStr CStr("abc"); TStr OneChar('a'); TStr CopyCStr(CStr); TStr Move(TStr("abc")); TStr ChA(TChA("abc")); TStr SStr(TSStr("abc")); EXPECT_EQ(Default, ""); EXPECT_EQ(CStr, "abc"); EXPECT_EQ(OneChar, "a"); EXPECT_EQ(CopyCStr, "abc"); EXPECT_EQ(Move, "abc"); EXPECT_EQ(ChA, "abc"); EXPECT_EQ(SStr, "abc"); EXPECT_EQ(TStr(nullptr), ""); }
TStdOut::TStdOut(): TSBase(TSStr("Standard output")), TSOut("Standard output"){}