From: <mie...@us...> - 2008-01-03 06:09:07
|
Revision: 2038 http://oorexx.svn.sourceforge.net/oorexx/?rev=2038&view=rev Author: miesfeld Date: 2008-01-02 22:09:05 -0800 (Wed, 02 Jan 2008) Log Message: ----------- ooRexxUnit - forward port commit 2014 from 3.2.0 branch to trunk. add pos.testGroup Added Paths: ----------- test/trunk/ooRexx/base/class/MutableBuffer/pos.testGroup Copied: test/trunk/ooRexx/base/class/MutableBuffer/pos.testGroup (from rev 2014, test/branches/test.3.2.0/ooRexx/base/class/MutableBuffer/pos.testGroup) =================================================================== --- test/trunk/ooRexx/base/class/MutableBuffer/pos.testGroup (rev 0) +++ test/trunk/ooRexx/base/class/MutableBuffer/pos.testGroup 2008-01-03 06:09:05 UTC (rev 2038) @@ -0,0 +1,559 @@ +#!/usr/bin/rexx +/* + name: pos.testGroup + author: Lee Peedin + date: 2008-01-02 + version: 1.0.0 + +-- line commented lines are ignored, when building the directory of infos from this header + + languageLevel: 6.02 + purpose: Test the pos method of the class MutableBuffer. + 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: Mutablebuffer +*/ +/*----------------------------------------------------------------------------*/ +/* */ +/* 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(.pos.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 "pos.testGroup" subclass TestCase public + +::method 'test001' + mb = .mutablebuffer~new('') + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test002' + mb = .mutablebuffer~new('a') + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test003' + mb = .mutablebuffer~new('123233'x) + self~assertSame('subTest01','0',mb~pos('',)) + +::method 'test004' + a = 'abcd' + mb = .mutablebuffer~new(a) + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test005' + a. = 'efgh' + mb = .mutablebuffer~new(a.~string) + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test006' + a. = 'efgh' + i = 3 + mb = .mutablebuffer~new(a.i) + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test007' + mb = .mutablebuffer~new(nov.~string) + self~assertSame('subTest01',0,mb~pos('')) + +::method 'test008' + mb = .mutablebuffer~new(nov) + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test009' + mb = .mutablebuffer~new(nov.~string) + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test010' + mb = .mutablebuffer~new(nov.3) + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test011' + mb = .mutablebuffer~new(a.nov) + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test012' + mb = .mutablebuffer~new('abcde' 'fghij') + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test013' + mb = .mutablebuffer~new('111'||'222') + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test014' + mb = .mutablebuffer~new(111+12) + self~assertSame('subTest01','0',mb~pos('')) + +::method 'test015' + mb = .mutablebuffer~new('') + self~assertSame('subTest01','0',mb~pos('a')) + +::method 'test016' + mb = .mutablebuffer~new('a') + self~assertSame('subTest01','1',mb~pos('a')) + +::method 'test017' + mb = .mutablebuffer~new('123233'x) + self~assertSame('subTest01','2',mb~pos('2')) + +::method 'test018' + a = 'abcd' + mb = .mutablebuffer~new(a) + self~assertSame('subTest01','1',mb~pos('a')) + +::method 'test019' + a. = 'efgh' + mb = .mutablebuffer~new(a.~string) + self~assertSame('subTest01','2',mb~pos('f')) + +::method 'test020' + a.3 = '333333' + i = 3 + mb = .mutablebuffer~new(a.i) + self~assertSame('subTest01','1',mb~pos('3')) + +::method 'test021' + mb = .mutablebuffer~new(nov.~string) + self~assertSame('subTest01',0,mb~pos('4')) + +::method 'test022' + mb = .mutablebuffer~new(nov) + self~assertSame('subTest01','0',mb~pos('o')) + +::method 'test023' + mb = .mutablebuffer~new(nov.~string) + self~assertSame('subTest01','0',mb~pos('n')) + +::method 'test024' + mb = .mutablebuffer~new(nov.3) + self~assertSame('subTest01','5',mb~pos('3')) + +::method 'test025' + mb = .mutablebuffer~new(a.nov) + self~assertSame('subTest01','0',mb~pos('a')) + +::method 'test026' + mb = .mutablebuffer~new('abcde' 'fghij') + self~assertSame('subTest01','5',mb~pos('e',)) + +::method 'test027' + mb = .mutablebuffer~new('111'||'222') + self~assertSame('subTest01','4',mb~pos('2',)) + +::method 'test028' + mb = .mutablebuffer~new(111+12) + self~assertSame('subTest01','2',mb~pos('2')) + +::method 'test029' + mb = .mutablebuffer~new('') + self~assertSame('subTest01','0',mb~pos('1')) + +::method 'test030' + mb = .mutablebuffer~new('a') + self~assertSame('subTest01','0',mb~pos('1')) + +::method 'test031' + mb = .mutablebuffer~new('123233'x) + self~assertSame('subTest01','0',mb~pos('1')) + +::method 'test032' + a = 'abcd' + mb = .mutablebuffer~new(a) + self~assertSame('subTest01','0',mb~pos('z')) + +::method 'test033' + a. = 'efgh' + mb = .mutablebuffer~new(a.~string) + self~assertSame('subTest01','0',mb~pos('z')) + +::method 'test034' + a.3 = '333333' + i = 3 + mb = .mutablebuffer~new(a.i) + self~assertSame('subTest01','0',mb~pos('z')) + +::method 'test035' + mb = .mutablebuffer~new(nov) + self~assertSame('subTest01','0',mb~pos('z')) + +::method 'test036' + mb = .mutablebuffer~new(nov.~string) + self~assertSame('subTest01','0',mb~pos('z')) + +::method 'test037' + mb = .mutablebuffer~new(nov.3) + self~assertSame('subTest01','0',mb~pos('z')) + +::method 'test038' + mb = .mutablebuffer~new(a.nov) + self~assertSame('subTest01','0',mb~pos('z')) + +::method 'test039' + mb = .mutablebuffer~new('abcde' 'fghij') + self~assertSame('subTest01','0',mb~pos('z',)) + +::method 'test040' + mb = .mutablebuffer~new('111'||'222') + self~assertSame('subTest01','0',mb~pos('z')) + +::method 'test041' + mb = .mutablebuffer~new(111+12) + self~assertSame('subTest01','0',mb~pos('z',)) + +::method 'test042' + .local~h = 'abcdefghijklmnopqrstuvwxyz'~reverse() + .local~h = .h~copies(1000)||'*'||.h~copies(100)||'.' + +::method 'test043' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('ef')) + +::method 'test044' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('z*')) + +::method 'test045' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('z.')) + +::method 'test046' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','28602',mb~pos('.')) + +::method 'test047' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('. ')) + +::method 'test048' + numeric digits 2 + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','28602',mb~pos('.')) + +::method 'test049' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('ef',1)) + +::method 'test050' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('z*',1)) + +::method 'test051' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('z.',1)) + +::method 'test052' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','28602',mb~pos('.',1)) + +::method 'test053' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('. ',1)) + +::method 'test054' + numeric digits 2 + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','28602',mb~pos('.',1)) + +::method 'test055' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('ef',1000)) + +::method 'test056' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('z*',1000)) + +::method 'test057' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('z.',1000)) + +::method 'test058' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','28602',mb~pos('.',1000)) + +::method 'test059' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('. ',1000)) + +::method 'test060' + numeric digits 2 + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','28602',mb~pos('.',1000)) + +::method 'test061' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('ef',1.e5)) + +::method 'test062' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('z*',1.e5)) + +::method 'test063' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('z.',1.e5)) + +::method 'test064' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('.',1.e5)) + +::method 'test065' + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('. ',1.e5)) + +::method 'test066' + numeric digits 2 + mb = .mutablebuffer~new(.h) + self~assertSame('subTest01','0',mb~pos('.',1.e5)) + +::method 'test067' + .local~remove(.h) + .local~s0 = '' + .local~s1 = 'a' + .local~s30 = copies('6',30)||'...' + .local~s255 = copies('*',255)||'1234e+3' + .local~s32768 = copies('ab',16383)||'abcde' + .local~s500000 = copies('.',500000)||'zzzzzzz' + +::method 'test068' + mb = .mutablebuffer~new(.s) + self~assertSame('subTest01',0,mb~pos('a')) + +::method 'test069' + mb = .mutablebuffer~new(.s1) + self~assertSame('subTest01',1,mb~pos('a')) + +::method 'test070' + mb = .mutablebuffer~new(.s30) + self~assertSame('subTest01',30,mb~pos('6.')) + +::method 'test071' + mb = .mutablebuffer~new(.s255) + self~assertSame('subTest01',255,mb~pos('*1')) + +::method 'test072' + mb = .mutablebuffer~new(.s32768) + self~assertSame('subTest01',32767,mb~pos('abc')) + +::method 'test073' + mb = .mutablebuffer~new(.s32768) + self~assertSame('subTest01',32768,mb~pos('bc')) + +::method 'test074' + mb = .mutablebuffer~new(.s32768) + self~assertSame('subTest01',32769,mb~pos('cde')) + +::method 'test075' + mb = .mutablebuffer~new(.s500000) + self~assertSame('subTest01',500001,mb~pos('zzzz')) + +::method 'test076' + .local~remove(s0) + .local~remove(s1) + .local~remove(s30) + .local~remove(s255) + .local~remove(s32768) + .local~remove(s500000) + +::method 'test077' + mb = .mutablebuffer~new('123456789') + self~expectSyntax(93.905) + xre = mb~pos('34',nov) + +::method 'test078' + .local~start1 = 5 + .local~start2 = 5.00 + .local~start3 = 5.00+0 + .local~start4 = 4+1 + .local~s = 1 + +::method 'test079' + mb = .mutablebuffer~new('123456789') + self~assertSame('subTest01','3',mb~pos('34',2)) + +::method 'test080' + mb = .mutablebuffer~new('123456789') + self~assertSame('subTest01','3',mb~pos('34',0.02e+2)) + +::method 'test081' + mb = .mutablebuffer~new('123456789') + self~assertSame('subTest01','8',mb~pos('89',.2*30)) + +::method 'test082' + mb = .mutablebuffer~new('123456789') + self~assertSame('subTest01','8',mb~pos('89',.start1)) + +::method 'test083' + mb = .mutablebuffer~new('123456789') + self~assertSame('subTest01','8',mb~pos('89',.start2)) + +::method 'test084' + mb = .mutablebuffer~new('123456789') + self~assertSame('subTest01','8',mb~pos('89',.start3)) + +::method 'test085' + mb = .mutablebuffer~new('123456789') + self~assertSame('subTest01','8',mb~pos('89',.start4)) + +::method 'test086' + mb = .mutablebuffer~new("uvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvw") + self~assertSame('subTest01','3',mb~pos("wuv",.s)) + +::method 'test087' + s. = 12 + mb = .mutablebuffer~new("uvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvw") + self~assertSame('subTest01','12',mb~pos("wuv",s.)) + +::method 'test088' + s.3 = 13 + mb = .mutablebuffer~new("uvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvw") + self~assertSame('subTest01','15',mb~pos("wuv",s.3)) + +::method 'test089' + s.s.s.s = 1 + mb = .mutablebuffer~new("uvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvw") + self~assertSame('subTest01','3',mb~pos("wuv",s.s.s.s)) + +::method 'test090' + s.s.s.s = 1 + mb = .mutablebuffer~new("uvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvwuvw") + self~assertSame('subTest01','3',mb~pos("wuv",s.s.s.s + .s + 1)) + +::method 'test091' + .local~remove(start1) + .local~remove(start2) + .local~remove(start3) + .local~remove(start4) + .local~remove(s) + +::method 'test092' + mb = .mutablebuffer~new('--------') + self~expectSyntax(93.924) + xre = mb~pos('-',0) + +::method 'test093' + mb = .mutablebuffer~new('--------') + self~expectSyntax(93.924) + xre = mb~pos('-',-12) + +::method 'test094' + mb = .mutablebuffer~new('--------') + self~expectSyntax(93.905) + xre = mb~pos('-',0.5) + +::method 'test095' + mb = .mutablebuffer~new('--------') + self~assertSame('subTest01','0',mb~pos('-',0.0000001e12)) + +::method 'test096' + mb = .mutablebuffer~new('--------') + self~expectSyntax(93.905) + xre = mb~pos('-',.abc) + +::method 'test097' + mb = .mutablebuffer~new('--------') + self~expectSyntax(93.905) + xre = mb~pos('-','a') + +::method 'test098' + a = xrange('a','z') + b = xrange('i','s') + c = 6 + mb = .mutablebuffer~new(a) + self~assertSame('subTest01','9',mb~pos(b,c)) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |