aboutsummaryrefslogtreecommitdiffstats
path: root/OLD/csci1913/Python/lab3_strap012.py
blob: f9df918c533175020bbeb71d9b8f985dfd03723b (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
#"New" functions
def Reduce(F,S):
    if len(S)==0:
        return -255
    else:
        return F(Reduce(F,S[:-1]),S[-1])
def returnGreater(a,b):
    if a > b:
        return a
    else:
        return b

#Implementation from Lab
def Sort(T):
    if len(T)==0:
        return ()
    else:
        return (Sort(Remove(T,Maximum(T))))+(Maximum(T),)
def Maximum(T):
    return Reduce(returnGreater,T)
def Remove(T,E):
    if len(T)==0:
        return ()
    elif T[0] is E:
        return T[1:]
    else:
        return (T[0],)+Remove(T[1:],E)


#
#  TESTS. Tests for CSci 1913 Lab 3.
#
#    James Moen
#    11 Feb 19
#
#  Each test is worth 2 points, for 40 points total. Comments show what must be
#  printed to receive credit. Note that your function SORT must work for tuples
#  with negative elements.
#

print(Maximum((1,)))                      #  1                            2 pt.
print(Maximum((-2, -1)))                  # -1                            2 pt.
print(Maximum((1, 1)))                    #  1                            2 pt.
print(Maximum((1, 2, 3)))                 #  3                            2 pt.

print(Remove((), 1))                      #  ()                           2 pt.
print(Remove((1,), 1))                    #  ()                           2 pt.
print(Remove((0, 1), 0))                  #  (1,)                         2 pt.
print(Remove((0, 1, 2, 1, 3), 1))         #  (0, 2, 1, 3)                 2 pt.
print(Remove((0, 1, 2, 1, 3), 2))         #  (0, 1, 1, 3)                 2 pt.
print(Remove((1, 2, 3), 3))               #  (1, 2)                       2 pt.

print(Sort(()))                           #  ()                           2 pt.
print(Sort((0,)))                         #  (0,)                         2 pt.
print(Sort((0, -1)))                      #  (-1, 0)                      2 pt.
print(Sort((1, 0)))                       #  (0, 1)                       2 pt.
print(Sort((0, 0, 1)))                    #  (0, 0, 1)                    2 pt.
print(Sort((0, -1, 0)))                   #  (-1, 0, 0)                   2 pt.
print(Sort((0, 0, 1)))                    #  (0, 0, 1)                    2 pt.

print(Sort((9, 8, 7, 6, 5, 4, 3, 2, 1)))  #  (1, 2, 3, 4, 5, 6, 7, 8, 9)  2 pt.
print(Sort((1, 2, 3, 4, 5, 6, 7, 8, 9)))  #  (1, 2, 3, 4, 5, 6, 7, 8, 9)  2 pt.
print(Sort((1, 2, 1, 4, 2, 5, 4, 5, 3)))  #  (1, 1, 2, 2, 3, 4, 4, 5, 5)  2 pt.