From: <pra...@us...> - 2007-12-28 17:37:11
|
Revision: 1844 http://oorexx.svn.sourceforge.net/oorexx/?rev=1844&view=rev Author: pragmatic_lee Date: 2007-12-28 09:37:08 -0800 (Fri, 28 Dec 2007) Log Message: ----------- add String_stripMethod.testGroup Added Paths: ----------- test/branches/test.3.2.0/ooRexx/base/class/String/String_stripMethod.testGroup Added: test/branches/test.3.2.0/ooRexx/base/class/String/String_stripMethod.testGroup =================================================================== --- test/branches/test.3.2.0/ooRexx/base/class/String/String_stripMethod.testGroup (rev 0) +++ test/branches/test.3.2.0/ooRexx/base/class/String/String_stripMethod.testGroup 2007-12-28 17:37:08 UTC (rev 1844) @@ -0,0 +1,511 @@ +#!/usr/bin/rexx +/* + name: String_stripMethod.testGroup + author: Lee Peedin + date: 2007-12-28 + version: 1.0.0 + +-- line commented lines are ignored, when building the directory of infos from this header + + languageLevel: 6.02 + purpose: Test the strip method of the class String. + remark: Initial test unit for demonstration purposes, needs to be completed. + + license: CPL 1.0 (Common Public License v1.0, see below) + link: + +// category needs not to be numbered, importance is given by position (1=most important) + category: ooRexx + category: Base + category: Class + category: String +*/ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2007 - 2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/*----------------------------------------------------------------------------*/ + + +------------------------------------------------------------------------------------------- +-- ===> adapt the "testGroupList" to your testCase classes; each element in the list is <=== +-- ===> an array object, the first element containing the testCase class object, the <=== +-- ===> second element is a list of test method names which are regarded to be <=== +-- ===> mandatory (if the list remains empty all test methods are mandatory) <=== + + /* list of array objects, each containing the testGroup class object and an + optional list of mandatory test case methods name */ +mandatoryTestMethods=.list~new -- no mandatory tests for this testCase class +testGroupList=.list~of( .array~of(.String_stripMethod.testGroup, mandatoryTestMethods) ) + + +------------------------------------------------------------------------------------------- +-- ===> the following code needs not to be individualized <=== + + -- read top comment, containing infos about this program +arrLines=.array~new +do i=1 to 150 until arrLines[i]="*/" + arrLines[i]=sourceline(i) +end + -- supply information for the testClass(es) in this file; the class attribute + -- "TestCaseInfo" (a directory object, index points to a queue) will store + -- the parsed infos +aTestGroupClass=testGroupList~at(testGroupList~first)[1] -- get first testClass + + -- will parse the array lines and store result in class object +call makeDirTestInfo aTestGroupClass, arrLines +tmpDir=aTestGroupClass~TestCaseInfo +parse source s -- op_sys invocationType fullPathToThisFile +tmpDir~setentry("test_Case-source", s) + + -- now add this directory to other testCase classes, if any left +do arr over testGroupList + if arr[1]=aTestGroupClass then iterate -- already handled + arr[1]~TestCaseInfo=tmpDir -- save info in class object +end + +-- if this file is CALLed or REQUIRED then define an entry "bRunTestLocally" in .local +-- and set it to .false; this way the independent local invocation of the tests is inhibited +if .local~hasentry("bRunTestsLocally")=.false then + .local~bRunTestsLocally=.true -- if this file is executed directly, then run tests for debugging + +if .bRunTestsLocally=.true then -- run ALL tests in this test unit +do + ts=.testSuite~new -- create a testSuite + do arr over testGroupList + -- create a testSuite for the given test case class, use all its testmethods + ts~addTest( .testSuite~new(arr[1])) + end + -- testResult=.testSuite~new(testGroupClass)~run + testResult=ts~run -- now run all the tests + + call simpleFormatTestResults testResult +end + + /* return list of array objects containing test case classes and + optionally list of mandatory test methods */ +return testGroupList + +::requires ooRexxUnit.cls -- load the ooRexxUnit classes + +::class "String_stripMethod.testGroup" subclass TestCase public + +::method 'test000' + .local~v100001 = copies('*',50000)||'a'||copies('*',50000) + .local~vr1 = copies(' ',50)||.v100001||copies(' ',50) + .local~vr2 = ' '||copies('Y',256) + .local~v255 = copies('X',255) + .local~v256 = copies('Y',256) + .local~b50 = copies(' ',50) + +::method 'test001' + self~assertSame('subTest01','',''~strip('B')) + +::method 'test002' + self~assertSame('subTest01','1','1'~strip('B',' ')) + +::method 'test003' + self~assertSame('subTest01',' @@aaa@@ ','@ @@aaa@@ @'~strip(,'@')) + +::method 'test004' + self~expectSyntax(93.922) + xre = '@ @@aaa@@ @'~strip(,'') + +::method 'test005' + self~assertSame('subTest01','aaa','@@@aaa@@@'~strip(,'@')) + +::method 'test006' + self~expectSyntax(93.922) + xre = '@@@aaa@@@'~strip(,'@@') + +::method 'test007' + self~assertSame('subTest01','aaa@@@','@@@aaa@@@'~strip('L','@')) + +::method 'test008' + self~assertSame('subTest01','@@@aaa','@@@aaa@@@'~strip('T','@')) + +::method 'test009' + self~assertSame('subTest01','aaa','@@@aaa@@@'~strip('B','@')) + +::method 'test010' + self~assertSame('subTest01','aaa','@@@aaa@@@'~strip('B','40'x)) + +::method 'test011' + self~assertSame('subTest01','aaa',' aaa '~strip()) + +::method 'test012' + self~assertSame('subTest01','aaa ',' aaa '~strip('L')) + +::method 'test013' + self~assertSame('subTest01',' aaa',' aaa '~strip('T')) + +::method 'test014' + self~assertSame('subTest01','aaa',' aaa '~strip('B')) + +::method 'test015' + self~assertSame('subTest01',' aaa ',' aaa '~strip('B','5B'X)) + +::method 'test016' + self~assertSame('subTest01','aaa',' aaa '~strip('B',' ')) + +::method 'test017' + self~expectSyntax(93.922) + xre = ' aaa '~strip('B',' ') + +::method 'test018' + self~expectSyntax(93.915) + xre=' aaa '~strip('x',' ') + +::method 'test019' + self~assertSame('subTest01','asdfgasdfgasdfgasdfgasdfgasdfg',' asdfgasdfgasdfgasdfgasdfgasdfg '~strip('BLT','20'x)) + +::method 'test020' + self~assertSame('subTest01',.v255||' ',(' '||.v255||' ')~strip('4c4254'x,' ')) + +::method 'test021' + self~assertSame('subTest01',.vr2,(' '||.v256||' ')~strip('TBL')) + +::method 'test022' + self~assertSame('subTest01','asdfgasdfgasdfgasdfgasdfgasdfg',' asdfgasdfgasdfgasdfgasdfgasdfg '~strip('blt','20'x)) + +::method 'test023' + self~assertSame('subTest01',.v255||' ',(' '||.v255||' ')~strip('6c6274'x,' ')) + +::method 'test024' + self~assertSame('subTest01',' '||.v256,(' '||.v256||' ')~strip('tbl')) + +::method 'test025' + self~assertSame('subTest01','@ asdf @',' @ asdf @ '~strip()) + +::method 'test026' + self~assertSame('subTest01','asdfgasdfgasdfgasdfgasdfgasdfg',' asdfgasdfgasdfgasdfgasdfgasdfg '~strip(BLT,'20'x)) + +::method 'test027' + self~assertSame('subTest01',.v255||' ',(' '||.v255||' ')~strip(LTB,' ')) + +::method 'test028' + self~assertSame('subTest01',' '||.v256,(' '||.v256||' ')~strip(TBL)) + +::method 'test029' + self~assertSame('subTest01','asdfgasdfgasdfgasdfgasdfgasdfg',' asdfgasdfgasdfgasdfgasdfgasdfg '~strip(blt,'20'x)) + +::method 'test030' + self~assertSame('subTest01',.v255||' ',(' '||.v255||' ')~strip(ltb,' ')) + +::method 'test031' + self~assertSame('subTest01',' '||.v256,(' '||.v256||' ')~strip(tbl)) + +::method 'test032' + self~expectSyntax(93.922) + xre = 'no.v1'~strip(,no.v2) + +::method 'test033' + self~assertSame('subTest01','0',(202+202)~strip(,'4')) + +::method 'test034' + self~assertSame('subTest01','0',(020+020)~strip(,'4')) + +::method 'test035' + self~assertSame('subTest01','+','44+44'~strip(,4)) + +::method 'test036' + self~assertSame('subTest01','+','44+44'~strip(,2+2)) + +::method 'test037' + self~assertSame('subTest01','4c4254'x,'202020204c4254202020'x~strip('B')) + +::method 'test038' + self~assertSame('subTest01','JJ','JJBBJJBBJJ'~strip(,'J')~strip('JJBBJJBBJJ'~strip(,'J'),'--B--'~strip('B','-'))) + +::method 'test039' + self~assertSame('subTest01','a',.v100001~strip(,'*')) + +::method 'test040' + self~assertSame('subTest01',.b50||copies('*',50000)||'a',(.b50||.v100001)~strip(,'*')) + +::method 'test041' + self~assertSame('subTest01',.vr1,(.b50||.v100001||.b50)~strip(,'*')) + +::method 'test042' + self~assertSame('subTest01','a'||copies('*',50000)||.b50,(.v100001||.b50)~strip(,'*')) + +::method 'test043' + .local~remove(v100001) + .local~remove(vr1) + .local~remove(vr2) + .local~remove(v255) + .local~remove(v256) + .local~remove(b50) + +::method 'test044' + .local~s = xRange()||REVERSE(xRange()) + self~assertSame('subTest01',512,length(.s)) + +::method 'test045' + .local~c = .s + .local~s = .c + +::method 'test046' + do i = 0 To 255 + .local~s = .s~strip('l',d2c(i)) + End + self~assertSame('subTest01',reverse(xRange(,'fe'x)),.s) + +::method 'test047' + .local~s = .c + do i = 0 To 255 + .local~s = .s~strip('t',d2c(i)) + end + self~assertSame('subTest01',xRange(,'fe'x),.s) + +::method 'test048' + .local~s = .c + do i = 0 To 255 + .local~s = .s~strip('b',d2c(i)) + end + self~assertSame('subTest01','',.s) + +::method 'test049' + .local~remove(c) + .local~remove(s) + +::method 'test050' + .local~s = " This is mother_s program " + .local~blank = ' ' + .local~both = 'b' + .local~pad = '@' + .local~v256 = copies(' abcd ',32) + .local~v255 = copies('@',127)||'.'||copies('@',127) + .local~dbcss = '0ec1c10f'x + .local~xr = xrange() + .local~xr2 = xr||reverse(xr) + +::method 'test051' + self~assertSame('subTest01','',''~strip()) + +::method 'test052' + self~assertSame('subTest01','',''~strip(,' ')) + +::method 'test053' + self~assertSame('subTest01','',(''||' ')~strip(,' '||'')) + +::method 'test054' + self~assertSame('subTest01','',''~strip(.both,' ')) + +::method 'test055' + self~assertSame('subTest01','m','omo'~strip(.both,'o')) + +::method 'test056' + self~assertSame('subTest01','','@'~strip(,'@')) + +::method 'test057' + self~assertSame('subTest01','','@'~strip('l','@')) + +::method 'test058' + self~assertSame('subTest01','','@'~strip('t','@')) + +::method 'test059' + self~assertSame('subTest01','S','S'~strip(,'@')) + +::method 'test060' + self~assertSame('subTest01','S','S'~strip('l','@')) + +::method 'test061' + self~assertSame('subTest01','S','S'~strip('t','@')) + +::method 'test062' + self~assertSame('subTest01','','@@'~strip(,'@')) + +::method 'test063' + self~assertSame('subTest01','','@@'~strip('l','@')) + +::method 'test064' + self~assertSame('subTest01','','@@'~strip('t','@')) + +::method 'test065' + self~assertSame('subTest01','This is mother_s program',.s~strip()) + +::method 'test066' + self~assertSame('subTest01','This is mother_s program ',.s~strip('l')) + +::method 'test067' + self~assertSame('subTest01',' This is mother_s program',.s~strip('trailing')) + +::method 'test068' + self~assertSame('subTest01','This is mother_s program',.s~strip('bye bye')) + +::method 'test069' + self~assertSame('subTest01',.s,.s~strip('B','a')) + +::method 'test070' + self~assertSame('subTest01',.s,.s~strip('T','a')) + +::method 'test071' + self~assertSame('subTest01',.s,.s~strip('L','a')) + +::method 'test072' + self~assertSame('subTest01',.s,.s~strip(,'a')) + +::method 'test073' + self~expectSyntax(93.915) + xre = .s~strip('c','a') + +::method 'test074' + self~expectSyntax(93.915) + xre = .s~strip(nov.2) + +::method 'test075' + self~expectSyntax(93.922) + xre = .s~strip('b',nov3) + +::method 'test076' + self~expectSyntax(93.915) + xre = nov1~strip(nov2,nov3) + +::method 'test077' + self~assertSame('subTest01','NOV',nov~strip()) + +::method 'test078' + self~expectSyntax(93.915) + xre = .s~strip(nov.2) + +::method 'test079' + self~assertSame('subTest01','OV1',nov1~strip('b',n)) + +::method 'test080' + self~assertSame('subTest01','12.5',0012.500~strip(,0)) + +::method 'test081' + self~assertSame('subTest01','12.7',12.70000~strip(,+00)) + +::method 'test082' + self~expectSyntax(93.922) + xre = 12.70000~strip(,00) + +::method 'test083' + self~assertSame('subTest01','6',(12*5)~strip(,0)) + +::method 'test084' + self~assertSame('subTest01',88,778877~strip(,4+3)) + +::method 'test085' + self~assertSame('subTest01',88,778877~strip('b',4+3)) + +::method 'test086' + self~assertSame('subTest01',88,778877~strip('Bla',4+3)) + +::method 'test087' + self~assertSame('subTest01','bcd '||copies('abcd ',30)||'abc',.v256~strip()~strip('l','a')~strip('t','d')) + +::method 'test088' + self~assertSame('subTest01',.v255~strip(.both,.pad),.v255~strip('l',.pad)~strip('t',.pad)) + +::method 'test089' + self~assertSame('subTest01','y the way, this is ',('by the way, this is' .both)~strip(,'b')) + +::method 'test090' + self~assertSame('subTest01',' b "',('''''' .both '"''')~strip(,'''')) + +::method 'test091' + self~assertSame('subTest01','This is mother_s program This is mother_s program This is mother_s program',(.s .s .s)~strip(,.blank)) + +::method 'test092' + self~assertSame('subTest01','This is mother_s program This is mother_s program This is mother_s program',(.s .s .s)~strip(,)) + +::method 'test093' + self~assertSame('subTest01','This is mother_s program This is mother_s program This is mother_s program',(.s .s .s)~strip(,'20'x)) + +::method 'test094' + self~assertSame('subTest01','This is mother_s program This is mother_s program This is mother_s program',(.s .s .s)~strip('42'x,'20'x)) + +::method 'test095' + self~assertSame('subTest01','This is mother_s program This is mother_s program This is mother_s program',(.s .s .s)~strip('42112233'x,'20'x)) + +::method 'test096' + self~assertSame('subTest01',' first literal beginning with ','a first literal beginning with a'~strip('bon-bon','a')) + +::method 'test097' + self~assertSame('subTest01','abc',(copies(.blank,5.4321e5)||'abc ')~strip) + +::method 'test098' + self~assertSame('subTest01','abc ',(copies(.blank,5.4321e5)||'abc ')~strip('l')) + +::method 'test099' + self~assertSame('subTest01',2,(17+4)~strip(x2c(c2x('t')),9-8)) + +::method 'test101' + self~assertSame('subTest01',xrange('01'x),xrange()~strip(,'00'x)) + +::method 'test102' + self~assertSame('subTest01',xrange(,'fe'x),xrange()~strip(,'ff'x)) + +::method 'test103' + self~assertSame('subTest01','a',('@ a @@'~strip(,'@'))~strip) + +::method 'test104' + self~assertSame('subTest01',copies('1000000000000000000000000',9)||'1000000000000','0000000000001000000000000000000000000100000000000000000000000010000000000000000000000001000000000000000000000000100000000000000000000000010000000000000000000000001000000000000000000000000100000000000000000000000010000000000000000000000001000000000000'~strip('l','0')) + +::method 'test105' + self~assertSame('subTest01','0000000000001'||copies('0000000000000000000000001',9),'0000000000001000000000000000000000000100000000000000000000000010000000000000000000000001000000000000000000000000100000000000000000000000010000000000000000000000001000000000000000000000000100000000000000000000000010000000000000000000000001000000000000'~strip('Toto',99//3)) + +::method 'test106' + self~assertSame('subTest01','',.~strip(,.)) + +::method 'test107' + self~assertSame('subTest01','1',100~strip(,0)) + +::method 'test108' + .local~remove(s) + .local~remove(blank) + .local~remove(both) + .local~remove(pad) + .local~remove(v256) + .local~remove(v255) + .local~remove(dbcss) + .local~remove(xr) + .local~remove(xr2) + +-- from bif.testgroup + -- test the BIF, using examples from the documentation +::method "test_STRIP" + self~assertSame("subTest1" , 'ab c' , ' ab c '~STRIP() ) + self~assertSame("subTest2" , 'ab c ' , ' ab c '~STRIP('L') ) + self~assertSame("subTest3" , ' ab c' , ' ab c '~STRIP('t') ) + self~assertSame("subTest4" , '12.7' , '12.7000'~STRIP( ,0) ) + self~assertSame("subTest5" , '12.7' , '0012.700'~STRIP( ,0) ) + + -- new tests + self~assertSame("subTest6" , '' , ''~STRIP( ) ) + self~assertSame("subTest7" , '' , ' '~STRIP() ) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |