From: <wda...@us...> - 2007-12-06 20:03:19
|
Revision: 1426 http://oorexx.svn.sourceforge.net/oorexx/?rev=1426&view=rev Author: wdashley Date: 2007-12-06 12:03:21 -0800 (Thu, 06 Dec 2007) Log Message: ----------- ArtifactID: None Comment: Added the B2X BIF tests. Added Paths: ----------- test/trunk/ooRexx/base/bif/B2X.testGroup Added: test/trunk/ooRexx/base/bif/B2X.testGroup =================================================================== --- test/trunk/ooRexx/base/bif/B2X.testGroup (rev 0) +++ test/trunk/ooRexx/base/bif/B2X.testGroup 2007-12-06 20:03:21 UTC (rev 1426) @@ -0,0 +1,254 @@ +#!/usr/bin/rexx +/* + name: String.testGroup + author: W. David Ashley + date: 2007-12-06 + version: 1.0.1 + +-- line commented lines are ignored, when building the directory of infos from this header + changed: 2007-12-06, ---wda, initial creation + + languageLevel: 6.02 + purpose: Test the ARG function + remark: Initial test unit for demonstration purposes, needs to be completed. + + license: CPL 1.0 (Common Public License v1.0, see below) + link: + + category1: ooRexx + category2: Base + category3: BIF +*/ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2005-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(.B2X.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 simpleDumpTestResults 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 "B2X.testGroup" subclass TestCase public + +::method "test_1" + self~expectSyntax(40.3) + self~assertSame("subTest1", b2x(), '') + +::method "test_2" + self~expectSyntax(93.932) + self~assertSame("subTest2", b2x(' '), ' ') + +::method "test_3" + self~assertSame("subTest3", b2x('1111'), 'F') + +::method "test_4" + self~assertSame("subTest4", b2x('0001 0001'), '11') + +::method "test_5" + self~assertSame("subTest5", b2x('1 0001'), '11') + +::method "test_6" + self~expectSyntax(93.932) + self~assertSame("subTest6", b2x(' 1111'), 'F') + +::method "test_7" + self~expectSyntax(93.932) + self~assertSame("subTest7", b2x(' 0001 0001'), '11') + +::method "test_8" + self~expectSyntax(93.932) + self~assertSame("subTest8", b2x(' 1 0001'), '11') + +::method "test_9" + self~expectSyntax(93.932) + self~assertSame("subTest9", b2x('1111 '), '1') + +::method "test_10" + self~expectSyntax(93.932) + self~assertSame("subTest10", b2x('0001 0001 '), '11') + +::method "test_11" + self~expectSyntax(93.932) + self~assertSame("subTest11", b2x('1 0001 '), '11') + +::method "test_12" + self~assertSame("subTest12", b2x(1111), 'F') + +::method "test_13" + self~assertSame("subTest13", b2x( 1111), 'F') + +::method "test_14" + self~assertSame("subTest14", b2x(1111 ), 'F') + +::method "test_15" + self~assertSame("subTest15", b2x(0001 0001), '11') + +::method "test_16" + self~assertSame("subTest16", b2x( 0001 0001), '11') + +::method "test_17" + self~assertSame("subTest17", b2x(0001 0001 ), '11') + +::method "test_18" + self~assertSame("subTest18", b2x(1 0001), '11') + +::method "test_19" + self~assertSame("subTest19", b2x( 1 0001), '11') + +::method "test_20" + self~assertSame("subTest20", b2x(1 0001 ), '11') + +::method "test_21" + self~assertSame("subTest21", b2x(10*11), '6') + +::method "test_22" + self~assertSame("subTest22", b2x(11E+2*10), '18') + +::method "test_23" + self~assertSame("subTest23", b2x(1.01E+2+10), '7') + +::method "test_24" + self~assertSame("subTest24", b2x('1'||Copies(' ',100000)||'0001'), '11') + +::method "test_25" + self~expectSyntax(93.932) + self~assertSame("subTest25", b2x(' 1 0001'), '11') + +::method "test_26" + self~expectSyntax(93.932) + self~assertSame("subTest26", b2x('1 0001 '), '11') + +::method "test_27" + self~expectSyntax(93.934) + self~assertSame("subTest27", b2x(Xrange('00'x,'FF'x)), '11') + +::method "test_28" + self~expectSyntax(93.934) + self~assertSame("subTest28", b2x(Copies('AB',50000)), '11') + +::method "test_29" + self~expectSyntax(93.934) + self~assertSame("subTest29", b2x('\'||Copies('10',50000)), '11') + +::method "test_30" + self~assertSame("subTest30", b2x('1'||Copies('0',249)), '200000000000000000000000000000000000000000000000000000000000000') + +::method "test_31" + self~assertSame("subTest31", Length(B2X('1'||Copies('0',254))), 64) + +::method "test_32" + self~assertSame("subTest32", Length(B2X('1'||Copies('0',255))), 64) + +::method "test_33" + self~assertSame("subTest33", Length(B2X(Copies('10',50000))), 25000) + +-- rexxref documentation tests + +::method "test_101" + self~assertSame("subTest101", B2X('11000011'), 'C3') + +::method "test_102" + self~assertSame("subTest102", B2X('10111'), '17') + +::method "test_103" + self~assertSame("subTest103", B2X('101'), '5') + +::method "test_104" + self~assertSame("subTest104", B2X('1 1111 0000'), '1F0') + + + Property changes on: test/trunk/ooRexx/base/bif/B2X.testGroup ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |