aboutsummaryrefslogtreecommitdiff
path: root/verify.go
diff options
context:
space:
mode:
Diffstat (limited to 'verify.go')
-rw-r--r--verify.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/verify.go b/verify.go
new file mode 100644
index 0000000..8d09b1e
--- /dev/null
+++ b/verify.go
@@ -0,0 +1,47 @@
+package main
+
+import (
+ "container/list"
+ "fmt"
+ "math"
+ "math/rand"
+ "time"
+)
+
+type function func(*list.Element, *list.Element) *list.Element
+
+func init() {
+ rand.Seed(time.Now().Unix())
+}
+
+// verify perfoms tests
+func verify(op string, f function) {
+ var mm, nn, rr int
+ switch op {
+ case "+":
+ mm = rand.Intn(100)
+ nn = rand.Intn(100)
+ rr = mm + nn
+ case "-":
+ mm = rand.Intn(100)
+ nn = rand.Intn(100)
+ if nn > mm {
+ mm, nn = nn, mm
+ }
+ rr = mm - nn
+ case "*":
+ mm = rand.Intn(10)
+ nn = rand.Intn(10)
+ rr = mm * nn
+ case "^":
+ mm = rand.Intn(10)
+ nn = rand.Intn(3)
+ rr = int(math.Pow(float64(mm), float64(nn)))
+ }
+ m := scan(mm)
+ n := scan(nn)
+ r := f(m, n)
+ expected := scan(rr)
+ fmt.Println(m.Value, op, n.Value, "=", r.Value,
+ r.Value == expected.Value)
+}