From: <pra...@us...> - 2007-12-27 20:04:59
|
Revision: 1813 http://oorexx.svn.sourceforge.net/oorexx/?rev=1813&view=rev Author: pragmatic_lee Date: 2007-12-27 12:04:57 -0800 (Thu, 27 Dec 2007) Log Message: ----------- add String_maxMethod.testGroup Added Paths: ----------- test/branches/test.3.2.0/ooRexx/base/class/String/String_maxMethod.testGroup Added: test/branches/test.3.2.0/ooRexx/base/class/String/String_maxMethod.testGroup =================================================================== --- test/branches/test.3.2.0/ooRexx/base/class/String/String_maxMethod.testGroup (rev 0) +++ test/branches/test.3.2.0/ooRexx/base/class/String/String_maxMethod.testGroup 2007-12-27 20:04:57 UTC (rev 1813) @@ -0,0 +1,168 @@ +#!/usr/bin/rexx +/* + name: String_maxMethod.testGroup + author: Lee Peedin + date: 2007-12-24 + version: 1.0.0 + +-- line commented lines are ignored, when building the directory of infos from this header + + languageLevel: 6.02 + purpose: Test the max 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_maxMethod.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_maxMethod.testGroup" subclass TestCase public + +::method 'test001' + self~assertSame('subTest01','1.00',1.00~max(1)) + +::method 'test002' + self~assertSame('subTest01','1',1~max(1.00)) + +::method 'test003' + self~assertSame('subTest01','0',(-0.00)~max(0)) + +::method 'test004' + self~assertSame('subTest01','0','-0.00'~max( 0)) + +::method 'test005' + self~assertSame('subTest01','0',0~max('-0.000')) + +::method 'test006' + self~assertSame('subTest01','0',0~max( 00.0)) + +::method 'test007' + self~assertSame('subTest01','12345678.0',12345678.00~max( 12345678)) + +::method 'test008' + self~assertSame('subTest01','12345678',12345678~max( 12345678.00)) + +::method 'test009' + self~assertSame('subTest01',12345679.0,12345678.96~max( 12345679)) + +::method 'test010' + self~assertSame('subTest01','-12345678.0','-12345678.00'~max( -12345678)) + +::method 'test011' + self~assertSame('subTest01','-12345678',(-12345678)~max( '-12345678.00')) + +::method 'test012' + self~assertSame('subTest01',-12345679,(-12345679)~max( '-12345678.96')) + +-- from bif.testgroup + -- test the BIF, using examples from the documentation +::method "test_MAX" + self~assertEquals("subTest1" , 12 , 12~max(6,7,9) ) + self~assertEquals("subTest2" , 19 , 17.3~max(19,17.03) ) + self~assertEquals("subTest3" , -3 , '-7'~max('-3','-4.3') ) + self~assertEquals("subTest4" , 21 , 1~max(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21) ) + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |