blob: 4e154f73eeaa3753acb01eae5c768e3d8e1a7ff1 (
plain) (
blame)
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
|
class Zillion:
def __init__(self,digits):
self.digits = digits
self.List = []
self.toList()
def toList(self):
badBoolean=False #Kludge
if len(self.digits) == 0 :
raise RuntimeError #Cannot make a list of nothing
for n in range (0,len(self.digits)):
if self.digits[n] is not ',':
if self.digits[n] is not ' ':
try:
self.List+=[int(self.digits[n])]
badBoolean=True
except ValueError: #Non-comma character in string
raise RuntimeError
if badBoolean is False: #No numbers in string
raise RuntimeError
else:
return self.List
def increment(self):
length = len(self.List) - 1
newList = self.List
newList[len(self.List)-1] += 1
if newList[length]>=10: #Loop to increment all 10s to 0s with carry
for n in range (0,length):
newList[length-n]=0
newList[length-n-1]+=1
def isZero(self):
for p in range (0,len(self.List)-1):
if self.List[p] is not 0:
return False
return True
def toString(self):
string=''
for q in range (0,len(self.List)):
string+=str(self.List[q]) #Make string by concatenation
return string
#
# TESTS. Test the class Zillion for CSci 1913 Lab 2.
#
# James Moen
# 18 Sep 17
#
# Every test is followed by a comment which shows what must be printed if your
# code works correctly. It also shows how many points the test is worth.
#
try:
z = Zillion('')
except RuntimeError:
print('Empty string')
# It must print 'Empty string' without apostrophes. 2 points.
try:
z = Zillion(' , ')
except RuntimeError:
print('No digits in the string')
# It must print 'No digits in the string' without apostrophes. 2 points.
try:
z = Zillion('1+0')
except RuntimeError:
print('Non-digit in the string')
# It must print 'Non-digit in the string' without apostrophes. 2 points.
try:
z = Zillion('0')
except RuntimeError:
print('This must not be printed')
# It must print nothing. 2 points.
print(z.isZero()) # It must print True. 2 points.
try:
z = Zillion('000000000')
except RuntimeError:
print('This must not be printed')
# It must print nothing. 2 points.
print(z.isZero()) # It must print True. 2 points.
try:
z = Zillion('000 000 000')
except RuntimeError:
print('This must not be printed')
# It must print nothing. 2 points.
print(z.isZero()) # It must print True. 2 points.
try:
z = Zillion('997')
except RuntimeError:
print('This must not be printed')
# It must print nothing. 2 points.
print(z.isZero()) # It must print False. 2 points.
print(z.toString()) # It must print 997. 2 points.
z.increment()
print(z.toString()) # It must print 998. 2 points.
z.increment()
print(z.toString()) # It must print 999. 2 points.
z.increment()
print(z.toString()) # It must print 1000. 2 points.
try:
z = Zillion('0 9,9 9')
except:
print('This must not be printed')
# It must print nothing. 3 points.
z.increment()
print(z.toString()) # It must print 1000. 2 points.
|