1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
#!/usr/local/bin/python
#
# File: objargtest
# Copyright: (c) 2001 The Regents of the University of California
# Revision: $Revision: 4434 $
# Date: $Date: 2005-03-17 09:05:29 -0800 (Thu, 17 Mar 2005) $
# Description: Excercise objects in hopes of finding bugs
#
import objarg.Employee
import objarg.EmployeeArray
import Numeric
from synch.ResultType import *
from synch import RegOut
def toFloat(d):
tmp = Numeric.zeros((1,), Numeric.Float32)
try:
tmp.savespace(1)
tmp[0] = d
except AttributeError:
tmp[0] = d
return tmp[0]
class TestCounter:
def __init__(self, numparts = -1):
self.partno = 0
self.tracker = RegOut.RegOut()
self.tracker.setExpectations(numparts)
def describeTest(self, description):
self.partno = self.partno + 1
self.tracker.startPart(self.partno)
self.tracker.writeComment(description)
def evalTest(self, result, expected):
if (result):
if (expected):
self.tracker.endPart(self.partno, PASS)
else:
self.tracker.endPart(self.partno, XPASS)
else:
if (expected):
self.tracker.endPart(self.partno, FAIL)
else:
self.tracker.endPart(self.partno, XFAIL)
def finish(self):
self.tracker.close()
class Entry:
def __init__(self, name, age, salary, status):
self.name = name
self.age = age
self.salary = salary
self.status = status
TestData = [
Entry( "John Smith", 35, 75.7e3, "c"),
Entry( "Jane Doe", 40, 85.5e3, "m"),
Entry( "Ella Vader", 64, 144.2e3, "r" ),
Entry( "Marge Inovera", 32, 483.2e3, "s" ),
Entry( "Hughy Louis Dewey", 45, 182.9e3, "m" ),
Entry( "Heywood Yubuzof", 12, 20.8e3, "x" ),
Entry( "Picov Andropov", 90, 120.6e3, "r" )
]
if __name__ == '__main__':
counter = TestCounter(84)
testlen = len(TestData)
employeeArray = objarg.EmployeeArray.EmployeeArray()
index = 0
for i in TestData:
counter.describeTest("objarg.Employee.Employee() != None")
e = objarg.Employee.Employee()
counter.evalTest(e != None, 1)
counter.describeTest("e.init(i.name, i.age, i.salary, i.status)")
counter.evalTest(e.init(i.name, i.age, i.salary, i.status), 1)
counter.describeTest("employeeArray.appendEmployee(e)")
counter.evalTest(employeeArray.appendEmployee(e), 1)
index = index + 1
counter.describeTest("i.salary == e.getSalary()")
counter.evalTest(i.salary == e.getSalary(), 1)
counter.describeTest("i.salary == e.getSalary()")
counter.evalTest(i.salary == e.getSalary(), 1)
counter.describeTest("i.age == e.getAge()")
counter.evalTest(i.age == e.getAge(), 1)
counter.describeTest("i.status == e.getStatus()")
counter.evalTest(i.status == e.getStatus(), 1)
counter.describeTest("index == employeeArray.getLength()")
counter.evalTest(index == employeeArray.getLength(), 1)
counter.describeTest("e.isSame(employeeArray.at(index))")
counter.evalTest(e.isSame(employeeArray.at(index)), 1)
index = 0
for i in TestData:
index = index + 1
(empInd, emp) = employeeArray.findByName(i.name)
counter.describeTest("employeeArray.findByName(i.name)")
counter.evalTest(empInd == index, 1)
if (empInd):
counter.describeTest("emp.isSame(employeeArray.at(empInd))")
counter.evalTest(emp.isSame(employeeArray.at(empInd)), 1)
f = objarg.Employee.Employee()
f.init("Hire High", 21, 0, "s")
counter.describeTest("employeeArray.promoteToMaxSalary(f)")
counter.evalTest(employeeArray.promoteToMaxSalary(f), 1)
counter.describeTest("f.getSalary == 483.2e3")
counter.evalTest(f.getSalary() == toFloat(483.2e3), 1)
counter.describeTest("employeeArray.appendEmployee(f)")
counter.evalTest(employeeArray.appendEmployee(f), 1)
f = objarg.Employee.Employee()
f.init("Amadeo Avogadro, conte di Quaregna", 225, 6.022045e23, "d")
counter.describeTest("not employeeArray.promoteToMaxSalary(f)")
(ret, f) = employeeArray.promoteToMaxSalary(f)
counter.evalTest(not ret, 1)
counter.describeTest("not employeeArray.appendEmployee(None)");
counter.evalTest(not employeeArray.appendEmployee(None), 1)
counter.describeTest('not employeeArray.findByName("New Riders")')
(ret, f) = employeeArray.findByName("New Riders")
counter.evalTest(not (ret or f), 1)
counter.describeTest('not employeeArray.promoteToMaxSalary(None)')
(ret, f) = employeeArray.promoteToMaxSalary(None)
counter.evalTest(not (ret or f), 1)
counter.finish()
0
|