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
|
/**
* The main part of the lists package consists of functions to test the functions you code, you may modify however you like as I will use my own Main.kt to test
*/
package lists
// Functions for composeList testing
fun add1(x: Int) : Int = x + 1
fun add2(x: Int) : Int = x + 2
// Functions for listApply testing
fun add(x : Int, y : Int) : Int {
return x + y
}
fun main(args: Array<String>) {
println("Start testing")
// Comment out tests you don't use
/* This is a multi-line
comment
*/
val n = 12
val zero = 0
val nAsNull = null
// countingNumbers tests
val countingNumbersUpToN = countingNumbers(n)
println("countingNumbers to $n are $countingNumbersUpToN")
val countingNumbersZero = countingNumbers(zero)
println("countingNumbers to $zero are $countingNumbersZero")
val countingNumbersNull = countingNumbers(nAsNull)
println("countingNumbers to $nAsNull are $countingNumbersNull")
println()
// evenNumbers tests
val evenNumbersUpToN = evenNumbers(n)
println("evenNumbers to $n are $evenNumbersUpToN")
val evenNumbersZero = evenNumbers(zero)
println("evenNumbers to $zero are $evenNumbersZero")
val evenNumbersNull = evenNumbers(nAsNull)
println("evenNumbers to $nAsNull are $evenNumbersNull")
println()
// primeNumbers tests
val primesUpToN = primeNumbers(n)
println("primeNumbers to $n are $primesUpToN")
val primesUpToZero = primeNumbers(zero)
println("primeNumbers to $zero are $primesUpToZero")
val primeNumbersNull = primeNumbers(nAsNull)
println("primeNumbers to $nAsNull are $primeNumbersNull")
println()
// subLists tests
println("subLists of $primesUpToN are ${subLists(primesUpToN)}")
println("subLists of $evenNumbersZero are ${subLists(evenNumbersZero)}")
println("subLists of $evenNumbersNull are ${subLists(evenNumbersNull)}")
println()
// countElements tests
println("countElements of subLists of $primesUpToN are ${countElements(subLists(primesUpToN))}")
println("countElements of subLists of even numbers to $zero are ${countElements(subLists(evenNumbersZero))}")
println("countElements of subLists of prime numbers to $nAsNull are ${countElements(subLists(primeNumbersNull))}")
val tempList = listOf(evenNumbersUpToN,evenNumbersZero,evenNumbersNull)
println("countElements of $tempList is ${countElements(tempList)}")
println()
// merge tests
println("merge of $primesUpToN and $countingNumbersUpToN is ${merge(primesUpToN,countingNumbersUpToN)}")
println("merge of $primesUpToN and $countingNumbersZero is ${merge(primesUpToN,countingNumbersZero)}")
println("merge of $primesUpToN and $countingNumbersNull is ${merge(primesUpToN,countingNumbersNull)}")
println()
// listApply tests
println("listApply of ::add to $countingNumbersUpToN is ${listApply(::add,subLists(countingNumbersUpToN))}")
println("listApply of ::add to $countingNumbersZero is ${listApply(::add,subLists(countingNumbersZero))}")
println("listApply of ::add to $countingNumbersNull is ${listApply(::add,subLists(countingNumbersNull))}")
println()
// composeList test
val functionList = listOf(::add1,::add2,::add1)
val composedFunction = composeList(functionList)
var result = composedFunction(n)
println("composedFunction of [::add1,::add2,::add1] applied to $n is $result")
}
|