>**************************************** >PROCEDURE _BETWEEN &&Handled as a procedure call/header for now, until a better FUNCTION header functionality is available > > LPARAMETERS tu1, tu2, tu3 > LOCAL llRetVal > llRetVal = .T. > IF VARTYPE(tu1) = 'U' OR VARTYPE(tu2) = 'U' OR VARTYPE(tu3) = 'U' > ?"ERROR: Invalid number of parameters!" && Error handling stub > llRetVal = .F. > ENDIF > IF llREtVal = .T. AND ; > ( VARTYPE(tu1) != VARTYPE(tu2) OR ; > VARTYPE(tu1) != VARTYPE(tu3) OR ; > VARTYPE(tu2) != VARTYPE(tu3) ; > ) > ?"ERROR: Data type mismatch!" && Error handling stub > llRetVal = .F. > ENDIF > IF llRetVal = .T. > llRetVal = .F. > IF tu1 >= tu2 AND tu1 <= tu3 > llRetVal = .T. > ENDIF > ENDIF >RETURN llRetVal >***************************************** >>
>? _BETWEEN(1,2,3) >? _BETWEEN('B','A','C') > >>
>* Test cases for BETWEEN_E -function (etechnologia replacement for VFP BETWEEN(var1, var2, var3) >* NOTES: Run this test in VFP, not the .NET compiler! >* This test covers the most likely data types: numeric, date and character. >* To complete unit test, we should probably add all of other possible VFP data types. > > *Pertti Karjalainen > *Northern Lights Software > *pertti@northernlightssoftware.com > *Original code: 3-26-07 > * > > CLEAR > SET CONSOLE OFF > SET ALTERNATE TO Test_between > SET ALTERNATE ON > *---all possible test cases (I hope!) > > *numeric: > > _BETWEEN(1,1,1) &&same, same, same > _BETWEEN(2,2,2) &&same, same, same > _BETWEEN(3,3,3) &&same, same, same > > _BETWEEN(1,1,2) &&small, small, medium > _BETWEEN(1,2,2) &&small, medium, medium > _BETWEEN(1,2,1) &&small, medium, small > > _BETWEEN(1,1,3) &&small, small, large > _BETWEEN(1,3,3) &&small, large, large > _BETWEEN(1,3,1) &&small, large, small > > _BETWEEN(1,3,2) &&small, large, medium > _BETWEEN(1,2,3) &&small, medium, large > > _BETWEEN(2,1,2) &&medium, small, medium > _BETWEEN(2,2,2) &&medium, medium, medium > _BETWEEN(2,2,1) &&medium, medium, small > > _BETWEEN(2,1,3) &&medium, small, large > _BETWEEN(2,3,3) &&medium, large, large > _BETWEEN(2,3,1) &&medium, large, small > > _BETWEEN(2,3,2) &&medium, large, medium > _BETWEEN(2,2,3) &&medium, medium, large > > _BETWEEN(3,1,2) &&large, small, medium > _BETWEEN(3,2,2) &&large, medium, medium > _BETWEEN(3,2,1) &&large, medium, small > > _BETWEEN(3,1,3) &&large, small, large > _BETWEEN(3,3,3) &&large, large, large > _BETWEEN(3,3,1) &&large, large, small > > _BETWEEN(3,3,2) &&large, large, medium > _BETWEEN(3,2,3) &&large, medium, large > > *Characters > _BETWEEN('A','A','A') &&same, same, same > _BETWEEN('B','B','B') &&same, same, same > _BETWEEN('C','C','C') &&same, same, same > > _BETWEEN('A','A','B') &&small, small, medium > _BETWEEN('A','B','B') &&small, medium, medium > _BETWEEN('A','B','A') &&small, medium, small > > _BETWEEN('A','A','C') &&small, small, large > _BETWEEN('A','C','C') &&small, large, large > _BETWEEN('A','C','A') &&small, large, small > > _BETWEEN('A','C','B') &&small, large, medium > _BETWEEN('A','B','C') &&small, medium, large > > _BETWEEN('B','A','B') &&medium, small, medium > _BETWEEN('B','B','B') &&medium, medium, medium > _BETWEEN('B','B','A') &&medium, medium, small > > _BETWEEN('B','A','C') &&medium, small, large > _BETWEEN('B','C','C') &&medium, large, large > _BETWEEN('B','C','A') &&medium, large, small > > _BETWEEN('B','C','B') &&medium, large, medium > _BETWEEN('B','B','C') &&medium, medium, large > > _BETWEEN('C','A','B') &&large, small, medium > _BETWEEN('C','B','B') &&large, medium, medium > _BETWEEN('C','B','A') &&large, medium, small > > _BETWEEN('C','A','C') &&large, small, large > _BETWEEN('C','C','C') &&large, large, large > _BETWEEN('C','C','A') &&large, large, small > > _BETWEEN('C','C','B') &&large, large, medium > _BETWEEN('C','B','C') &&large, medium, large > > *Dates > _BETWEEN(DATE(),DATE(),DATE()) &&same, same, same > _BETWEEN(DATE()+1,DATE()+1,DATE()+1) &&same, same, same > _BETWEEN(DATE()+2,DATE()+2,DATE()+2) &&same, same, same > > _BETWEEN(DATE(),DATE(),DATE()+1) &&small, small, medium > _BETWEEN(DATE(),DATE()+1,DATE()+1) &&small, medium, medium > _BETWEEN(DATE(),DATE()+1,DATE()) &&small, medium, small > > _BETWEEN(DATE(),DATE(),DATE()+2) &&small, small, large > _BETWEEN(DATE(),DATE()+2,DATE()+2) &&small, large, large > _BETWEEN(DATE(),DATE()+2,DATE()) &&small, large, small > > _BETWEEN(DATE(),DATE()+2,DATE()+1) &&small, large, medium > _BETWEEN(DATE(),DATE()+1,DATE()+2) &&small, medium, large > > _BETWEEN(DATE()+1,DATE(),DATE()+1) &&medium, small, medium > _BETWEEN(DATE()+1,DATE()+1,DATE()+1) &&medium, medium, medium > _BETWEEN(DATE()+1,DATE()+1,DATE()) &&medium, medium, small > > _BETWEEN(DATE()+1,DATE(),DATE()+2) &&medium, small, large > _BETWEEN(DATE()+1,DATE()+2,DATE()+2) &&medium, large, large > _BETWEEN(DATE()+1,DATE()+2,DATE()) &&medium, large, small > > _BETWEEN(DATE()+1,DATE()+2,DATE()+1) &&medium, large, medium > _BETWEEN(DATE()+1,DATE()+1,DATE()+2) &&medium, medium, large > > _BETWEEN(DATE()+2,DATE(),DATE()+1) &&large, small, medium > _BETWEEN(DATE()+2,DATE()+1,DATE()+1) &&large, medium, medium > _BETWEEN(DATE()+2,DATE()+1,DATE()) &&large, medium, small > > _BETWEEN(DATE()+2,DATE(),DATE()+2) &&large, small, large > _BETWEEN(DATE()+2,DATE()+2,DATE()+2) &&large, large, large > _BETWEEN(DATE()+2,DATE()+2,DATE()) &&large, large, small > > _BETWEEN(DATE()+2,DATE()+2,DATE()+1) &&large, large, medium > _BETWEEN(DATE()+2,DATE()+1,DATE()+2) &&large, medium, large > > > *--error conditions > _BETWEEN(2,1) &&too few parameters > _BETWEEN(2,'A') &&data mismatch > > SET ALTERNATE TO > MODIFY COMMAND TEST_BETWEEN.TXT NOWAIT >RETURN > >PROCEDURE _BETWEEN &&Handled as a procedure call/header for now, until a better FUNCTION header functionality is available > > LPARAMETERS tu1, tu2, tu3 > LOCAL llRetVal > llRetVal = .T. > IF VARTYPE(tu1) = 'U' OR VARTYPE(tu2) = 'U' OR VARTYPE(tu3) = 'U' > ?"ERROR: Invalid number of parameters!" && Error handling stub > llRetVal = .F. > ENDIF > IF llREtVal = .T. AND ; > ( VARTYPE(tu1) != VARTYPE(tu2) OR ; > VARTYPE(tu1) != VARTYPE(tu3) OR ; > VARTYPE(tu2) != VARTYPE(tu3) ; > ) > ?"ERROR: Data type mismatch!" && Error handling stub > llRetVal = .F. > ENDIF > IF llRetVal = .T. > llRetVal = .F. > IF (tu1 >= tu2 AND tu1 <= tu3 > llRetVal = .T. > ENDIF > ENDIF > CompareResults(tu1, tu2, tu3, llRetVal) &&Compare the result from this function with that of VFP function >RETURN llRetVal > > >FUNCTION CompareResults(tu1, tu2, tu3, llRetVal) > ?'Function: BETWEEN('+TRANSFORM(tu1)+', '+TRANSFORM(tu2)+', '+TRANSFORM(tu3)+')' > ?' Test Result: '+TRANSFORM(llRetVal) > ?' VFPFunction: '+TRANSFORM(BETWEEN(tu1, tu2, tu3)) > IF llRetVal != BETWEEN(tu1, tu2, tu3) > ?' NOT OK!' > ELSE > ?' Ok.' > ENDIF >ENDFUNC > >>