From 1195504ca2d8fc4107860ee9fd75d691a45f95eb Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 26 Jul 1999 18:56:50 +0000 Subject: [PATCH] *** empty log message *** --- harbour/ChangeLog | 8 ++ harbour/tests/working/rtl_test.prg | 175 ++++++++++++++--------------- harbour/tests/working/transfrm.prg | 3 +- 3 files changed, 96 insertions(+), 90 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 324394106e..f9e28d86b5 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,11 @@ +19990726-14:30 CET Victor Szel + + source/rdd/makefile - Added new files. + * tests/working/rtl_test.prg - make use of the preproc + and thus it's more easy to expand it, and fewer human + errors can be made. We could use this idea in several + other test programs, too. + ! tests/working/transfrm.prg - Buggy test line fixed. + 19990726-20:32 GMT+1 Bruno Cantero * source/rdd/dbfntx1.c Fixed bug under msvc diff --git a/harbour/tests/working/rtl_test.prg b/harbour/tests/working/rtl_test.prg index 083544a36e..d091a5cd26 100644 --- a/harbour/tests/working/rtl_test.prg +++ b/harbour/tests/working/rtl_test.prg @@ -36,113 +36,110 @@ /* TODO: Add checks for string parameters with embedded NUL character */ /* TODO: Add test cases for other string functions */ -/* TODO: Incorporate tests from TEST\WORKING\STRING*.PRG -/* QUESTION: Can Harbour compile and run this (PadR(), Chr(), fWrite(), StrTran()) ? */ +/* TODO: Incorporate tests from TEST\WORKING\STRING*.PRG */ -FUNCTION Main() +#translate SHOW_TEST() => fWrite(1, PadR(StrTran(<(x)>, Chr(0), "."), 40) + " -> " + '"' + StrTran(, Chr(0), ".") + '"' + Chr(13) + Chr(10)) +#translate SHOW_LINE() => fWrite(1, Chr(13) + Chr(10)) #define NUL Chr(0) -SHOW_TEST('At("", "")' , Str(At("", "")) ) // 1 -SHOW_TEST('At("", "ABCDEF")' , Str(At("", "ABCDEF")) ) // 1 -SHOW_TEST('At("ABCDEF", "")' , Str(At("ABCDEF", "")) ) // 0 -SHOW_TEST('At("AB", "AB")' , Str(At("AB", "AB")) ) // 1 -SHOW_TEST('At("AB", "AAB")' , Str(At("AB", "AAB")) ) // 2 -SHOW_TEST('At("A", "ABCDEF")' , Str(At("A", "ABCDEF")) ) // 1 -SHOW_TEST('At("F", "ABCDEF")' , Str(At("F", "ABCDEF")) ) // 6 -SHOW_TEST('At("D", "ABCDEF")' , Str(At("D", "ABCDEF")) ) // 4 -SHOW_TEST('At("X", "ABCDEF")' , Str(At("X", "ABCDEF")) ) // 0 -SHOW_TEST('At("AB", "ABCDEF")' , Str(At("AB", "ABCDEF")) ) // 1 -SHOW_TEST('At("AA", "ABCDEF")' , Str(At("AA", "ABCDEF")) ) // 0 -SHOW_TEST('At("ABCDEF", "ABCDEF")' , Str(At("ABCDEF", "ABCDEF")) ) // 1 -SHOW_TEST('At("BCDEF", "ABCDEF")' , Str(At("BCDEF", "ABCDEF")) ) // 2 -SHOW_TEST('At("BCDEFG", "ABCDEF")' , Str(At("BCDEFG", "ABCDEF")) ) // 0 -SHOW_TEST('At("ABCDEFG", "ABCDEF")' , Str(At("ABCDEFG", "ABCDEF"))) // 0 -SHOW_TEST('At("FI", "ABCDEF")' , Str(At("FI", "ABCDEF")) ) // 0 +FUNCTION Main() -SHOW_TEST('SubStr("abcdef", 0, -1)' , SubStr("abcdef", 0, -1) ) // "" -SHOW_TEST('SubStr("abcdef", 0, 0)' , SubStr("abcdef", 0, 0) ) // "" -SHOW_TEST('SubStr("abcdef", 0, 1)' , SubStr("abcdef", 0, 1) ) // "a" -SHOW_TEST('SubStr("abcdef", 0, 7)' , SubStr("abcdef", 0, 7) ) // "abcdef" -SHOW_TEST('SubStr("abcdef", 0)' , SubStr("abcdef", 0) ) // "abcdef" -SHOW_TEST('SubStr("abcdef", 2, -1)' , SubStr("abcdef", 2, -1) ) // "" -SHOW_TEST('SubStr("abcdef", 2, 0)' , SubStr("abcdef", 2, 0) ) // "" -SHOW_TEST('SubStr("abcdef", 2, 1)' , SubStr("abcdef", 2, 1) ) // "b" -SHOW_TEST('SubStr("abcdef", 2, 7)' , SubStr("abcdef", 2, 7) ) // "bcdef" -SHOW_TEST('SubStr("abcdef", 2)' , SubStr("abcdef", 2) ) // "bcdef" -SHOW_TEST('SubStr("abcdef", -2, -1)' , SubStr("abcdef", -2, -1) ) // "" -SHOW_TEST('SubStr("abcdef", -2, 0)' , SubStr("abcdef", -2, 0) ) // "" -SHOW_TEST('SubStr("abcdef", -2, 1)' , SubStr("abcdef", -2, 1) ) // "e" -SHOW_TEST('SubStr("abcdef", -2, 7)' , SubStr("abcdef", -2, 7) ) // "ef" -SHOW_TEST('SubStr("abcdef", -2)' , SubStr("abcdef", -2) ) // "ef" -SHOW_TEST('SubStr("abcdef", 10, -1)' , SubStr("abcdef", 10, -1) ) // "" -SHOW_TEST('SubStr("abcdef", 10, 0)' , SubStr("abcdef", 10, 0) ) // "" -SHOW_TEST('SubStr("abcdef", 10, 1)' , SubStr("abcdef", 10, 1) ) // "" -SHOW_TEST('SubStr("abcdef", 10, 7)' , SubStr("abcdef", 10, 7) ) // "" -SHOW_TEST('SubStr("abcdef", 10)' , SubStr("abcdef", 10) ) // "" -SHOW_TEST('SubStr("abcdef", -10, -1)' , SubStr("abcdef", -10, -1) ) // "" -SHOW_TEST('SubStr("abcdef", -10, 0)' , SubStr("abcdef", -10, 0) ) // "" -SHOW_TEST('SubStr("abcdef", -10, 1)' , SubStr("abcdef", -10, 1) ) // "a" -SHOW_TEST('SubStr("abcdef", -10, 7)' , SubStr("abcdef", -10, 7) ) // "abcdef" -SHOW_TEST('SubStr("abcdef", -10, 15)' , SubStr("abcdef", -10, 15) ) // "abcdef" -SHOW_TEST('SubStr("abcdef", -10)' , SubStr("abcdef", -10) ) // "abcdef" + SHOW_TEST( Str(At("", "")) ) // 1 + SHOW_TEST( Str(At("", "ABCDEF")) ) // 1 + SHOW_TEST( Str(At("ABCDEF", "")) ) // 0 + SHOW_TEST( Str(At("AB", "AB")) ) // 1 + SHOW_TEST( Str(At("AB", "AAB")) ) // 2 + SHOW_TEST( Str(At("A", "ABCDEF")) ) // 1 + SHOW_TEST( Str(At("F", "ABCDEF")) ) // 6 + SHOW_TEST( Str(At("D", "ABCDEF")) ) // 4 + SHOW_TEST( Str(At("X", "ABCDEF")) ) // 0 + SHOW_TEST( Str(At("AB", "ABCDEF")) ) // 1 + SHOW_TEST( Str(At("AA", "ABCDEF")) ) // 0 + SHOW_TEST( Str(At("ABCDEF", "ABCDEF")) ) // 1 + SHOW_TEST( Str(At("BCDEF", "ABCDEF")) ) // 2 + SHOW_TEST( Str(At("BCDEFG", "ABCDEF")) ) // 0 + SHOW_TEST( Str(At("ABCDEFG", "ABCDEF")) ) // 0 + SHOW_TEST( Str(At("FI", "ABCDEF")) ) // 0 -SHOW_LINE() + SHOW_TEST( SubStr("abcdef", 0, -1) ) // "" + SHOW_TEST( SubStr("abcdef", 0, 0) ) // "" + SHOW_TEST( SubStr("abcdef", 0, 1) ) // "a" + SHOW_TEST( SubStr("abcdef", 0, 7) ) // "abcdef" + SHOW_TEST( SubStr("abcdef", 0) ) // "abcdef" + SHOW_TEST( SubStr("abcdef", 2, -1) ) // "" + SHOW_TEST( SubStr("abcdef", 2, 0) ) // "" + SHOW_TEST( SubStr("abcdef", 2, 1) ) // "b" + SHOW_TEST( SubStr("abcdef", 2, 7) ) // "bcdef" + SHOW_TEST( SubStr("abcdef", 2) ) // "bcdef" + SHOW_TEST( SubStr("abcdef", -2, -1) ) // "" + SHOW_TEST( SubStr("abcdef", -2, 0) ) // "" + SHOW_TEST( SubStr("abcdef", -2, 1) ) // "e" + SHOW_TEST( SubStr("abcdef", -2, 7) ) // "ef" + SHOW_TEST( SubStr("abcdef", -2) ) // "ef" + SHOW_TEST( SubStr("abcdef", 10, -1) ) // "" + SHOW_TEST( SubStr("abcdef", 10, 0) ) // "" + SHOW_TEST( SubStr("abcdef", 10, 1) ) // "" + SHOW_TEST( SubStr("abcdef", 10, 7) ) // "" + SHOW_TEST( SubStr("abcdef", 10) ) // "" + SHOW_TEST( SubStr("abcdef", -10, -1) ) // "" + SHOW_TEST( SubStr("abcdef", -10, 0) ) // "" + SHOW_TEST( SubStr("abcdef", -10, 1) ) // "a" + SHOW_TEST( SubStr("abcdef", -10, 7) ) // "abcdef" + SHOW_TEST( SubStr("abcdef", -10, 15) ) // "abcdef" + SHOW_TEST( SubStr("abcdef", -10) ) // "abcdef" -SHOW_TEST('Left("abcdef", -10)' , Left("abcdef", -10) ) // "" -SHOW_TEST('Left("abcdef", -2)' , Left("abcdef", -2) ) // "" -SHOW_TEST('Left("abcdef", 0)' , Left("abcdef", 0) ) // "" -SHOW_TEST('Left("abcdef", 2)' , Left("abcdef", 2) ) // "ab" -SHOW_TEST('Left("abcdef", 10)' , Left("abcdef", 10) ) // "abcdef" + SHOW_LINE() -SHOW_LINE() + SHOW_TEST( Left("abcdef", -10) ) // "" + SHOW_TEST( Left("abcdef", -2) ) // "" + SHOW_TEST( Left("abcdef", 0) ) // "" + SHOW_TEST( Left("abcdef", 2) ) // "ab" + SHOW_TEST( Left("abcdef", 10) ) // "abcdef" -SHOW_TEST('Right("abcdef", -10)' , Right("abcdef", -10) ) // "" -SHOW_TEST('Right("abcdef", -2)' , Right("abcdef", -2) ) // "" -SHOW_TEST('Right("abcdef", 0)' , Right("abcdef", 0) ) // "" -SHOW_TEST('Right("abcdef", 2)' , Right("abcdef", 2) ) // "ef" -SHOW_TEST('Right("abcdef", 10)' , Right("abcdef", 10) ) // "abcdef" + SHOW_LINE() -SHOW_LINE() + SHOW_TEST( Right("abcdef", -10) ) // "" + SHOW_TEST( Right("abcdef", -2) ) // "" + SHOW_TEST( Right("abcdef", 0) ) // "" + SHOW_TEST( Right("abcdef", 2) ) // "ef" + SHOW_TEST( Right("abcdef", 10) ) // "abcdef" -SHOW_TEST('PadR("abcdef", -5)' , PadR("abcdef", -5) ) // "" -SHOW_TEST('PadR("abcdef", 0)' , PadR("abcdef", 0) ) // "" -SHOW_TEST('PadR("abcdef", 5)' , PadR("abcdef", 5) ) // "abcde" -SHOW_TEST('PadR("abcdef", 10)' , PadR("abcdef", 10) ) // "abcdef " -SHOW_TEST('PadR("abcdef", 10, "1")' , PadR("abcdef", 10, "1") ) // "abcdef1111" -SHOW_TEST('PadR("abcdef", 10, "12")' , PadR("abcdef", 10, "12") ) // "abcdef1111" + SHOW_LINE() -SHOW_LINE() + SHOW_TEST( PadR("abcdef", -5) ) // "" + SHOW_TEST( PadR("abcdef", 0) ) // "" + SHOW_TEST( PadR("abcdef", 5) ) // "abcde" + SHOW_TEST( PadR("abcdef", 10) ) // "abcdef " + SHOW_TEST( PadR("abcdef", 10, "1") ) // "abcdef1111" + SHOW_TEST( PadR("abcdef", 10, "12") ) // "abcdef1111" -SHOW_TEST('PadL("abcdef", -5)' , PadL("abcdef", -5) ) // "" -SHOW_TEST('PadL("abcdef", 0)' , PadL("abcdef", 0) ) // "" -SHOW_TEST('PadL("abcdef", 5)' , PadL("abcdef", 5) ) // "abcde" /* QUESTION: CA-Clipper "bug", should return: "bcdef" ? */ -SHOW_TEST('PadL("abcdef", 10)' , PadL("abcdef", 10) ) // " abcdef" -SHOW_TEST('PadL("abcdef", 10, "1")' , PadL("abcdef", 10, "1") ) // "1111abcdef" -SHOW_TEST('PadL("abcdef", 10, "12")' , PadL("abcdef", 10, "12") ) // "1111abcdef" + SHOW_LINE() -SHOW_LINE() + SHOW_TEST( PadL("abcdef", -5) ) // "" + SHOW_TEST( PadL("abcdef", 0) ) // "" + SHOW_TEST( PadL("abcdef", 5) ) // "abcde" /* QUESTION: CA-Clipper "bug", should return: "bcdef" ? */ + SHOW_TEST( PadL("abcdef", 10) ) // " abcdef" + SHOW_TEST( PadL("abcdef", 10, "1") ) // "1111abcdef" + SHOW_TEST( PadL("abcdef", 10, "12") ) // "1111abcdef" -SHOW_TEST('PadC("abcdef", -5)' , PadC("abcdef", -5) ) // "" -SHOW_TEST('PadC("abcdef", 0)' , PadC("abcdef", 0) ) // "" -SHOW_TEST('PadC("abcdef", 2)' , PadC("abcdef", 2) ) // "ab" /* QUESTION: CA-Clipper "bug", should return: "cd" ? */ -SHOW_TEST('PadC("abcdef", 5)' , PadC("abcdef", 5) ) // "abcde" -SHOW_TEST('PadC("abcdef", 10)' , PadC("abcdef", 10) ) // " abcdef " -SHOW_TEST('PadC("abcdef", 10, "1")' , PadC("abcdef", 10, "1") ) // "11abcdef11" -SHOW_TEST('PadC("abcdef", 10, "12")' , PadC("abcdef", 10, "12") ) // "11abcdef11" + SHOW_LINE() -SHOW_LINE() + SHOW_TEST( PadC("abcdef", -5) ) // "" + SHOW_TEST( PadC("abcdef", 0) ) // "" + SHOW_TEST( PadC("abcdef", 2) ) // "ab" /* QUESTION: CA-Clipper "bug", should return: "cd" ? */ + SHOW_TEST( PadC("abcdef", 5) ) // "abcde" + SHOW_TEST( PadC("abcdef", 10) ) // " abcdef " + SHOW_TEST( PadC("abcdef", 10, "1") ) // "11abcdef11" + SHOW_TEST( PadC("abcdef", 10, "12") ) // "11abcdef11" -/* TODO: These could be more complete */ + SHOW_LINE() -SHOW_TEST('SubStr("ab" + NUL + "def", 2, 3)', SubStr("ab" + NUL + "def", 2, 3) ) -SHOW_TEST('Left("ab" + NUL + "def", 5)', Left("ab" + NUL + "def", 5) ) -SHOW_TEST('Right("ab" + NUL + "def", 5)', Right("ab" + NUL + "def", 5) ) + /* TODO: These could be more complete */ -RETURN NIL + SHOW_TEST( SubStr("ab" + NUL + "def", 2, 3) ) + SHOW_TEST( Left("ab" + NUL + "def", 5) ) + SHOW_TEST( Right("ab" + NUL + "def", 5) ) -STATIC FUNCTION SHOW_TEST(cExpr, cResult) - RETURN fWrite(1, PadR(StrTran(cExpr, Chr(0), "."), 40) + " -> " + '"' + StrTran(cResult, Chr(0), ".") + '"' + Chr(13) + Chr(10)) + RETURN NIL -STATIC FUNCTION SHOW_LINE() - RETURN fWrite(1, Chr(13) + Chr(10)) diff --git a/harbour/tests/working/transfrm.prg b/harbour/tests/working/transfrm.prg index 4d47602d2c..080a86aa2b 100644 --- a/harbour/tests/working/transfrm.prg +++ b/harbour/tests/working/transfrm.prg @@ -94,7 +94,8 @@ function Main() QOut( "-3.33 ", " ", transform( -3.33 , "" ) ) Pause() QOut( "-1234 ", "@( 9999 ", transform( -1234 , "@( 9999" ), " (BUG Fix)" ) - QOut( "-1234 ", "@B( 9999 ", transform( -1234 , "@B 9999" ) ) + QOut( "-1234 ", "@B 9999 ", transform( -1234 , "@B 9999" ) ) + QOut( "-1234 ", "@B( 9999 ", transform( -1234 , "@B( 9999" ) ) QOut( "1234 ", "@E 9,999.99 ", transform( 1234 , "@E 9,999.99" ) ) QOut( "12.2 ", "@E 9,999.99 ", transform( 12.2 , "@E 9,999.99" ) ) QOut( "-1234 ", "@X 9999 ", transform( -1234 , "@X 9999" ) )