blob: 3c6d9c58131d586f4c05e232e61e61fe7e03b884 [file] [log] [blame]
Sabina Leaverc5fd2772022-01-29 17:00:23 -08001package db
2
3import (
4 "fmt"
5 "reflect"
6 "testing"
7)
8
9func TestAddToMatchDB(t *testing.T) {
10 db, error_ := NewDatabase()
11 if error_ != nil {
12 t.Fatalf(error_.Error())
13 }
14 correct := []Match{Match{matchNumber: 7, round: 1, compLevel: "quals", r1: 9999, r2: 1000, r3: 777, b1: 0000, b2: 4321, b3: 1234, r1ID: 1, r2ID: 2, r3ID: 3, b1ID: 4, b2ID: 5, b3ID: 6}}
15 db.AddToMatch(correct[0])
16 got, error_ := db.ReturnMatches()
17 if error_ != nil {
18 t.Fatalf(error_.Error())
19 }
20 if !reflect.DeepEqual(correct, got) {
21 t.Fatalf("Got %#v,\nbut expected %#v.", got, correct)
22 }
23 db.Delete()
24}
25
26func TestAddToStatsDB(t *testing.T) {
27 db, error_ := NewDatabase()
28 if error_ != nil {
29 t.Fatalf(error_.Error())
30 }
31 correct := []Stats{
32 Stats{teamNumber: 1236, matchNumber: 7, shotsMissed: 9, upperGoalShots: 5, lowerGoalShots: 4, shotsMissedAuto: 3, upperGoalAuto: 2, lowerGoalAuto: 1, playedDefense: 2, climbing: 3},
33 Stats{teamNumber: 1001, matchNumber: 7, shotsMissed: 6, upperGoalShots: 9, lowerGoalShots: 9, shotsMissedAuto: 0, upperGoalAuto: 0, lowerGoalAuto: 0, playedDefense: 0, climbing: 0},
34 Stats{teamNumber: 777, matchNumber: 7, shotsMissed: 5, upperGoalShots: 7, lowerGoalShots: 12, shotsMissedAuto: 0, upperGoalAuto: 4, lowerGoalAuto: 0, playedDefense: 0, climbing: 0},
35 Stats{teamNumber: 1000, matchNumber: 7, shotsMissed: 12, upperGoalShots: 6, lowerGoalShots: 10, shotsMissedAuto: 0, upperGoalAuto: 7, lowerGoalAuto: 0, playedDefense: 0, climbing: 0},
36 Stats{teamNumber: 4321, matchNumber: 7, shotsMissed: 14, upperGoalShots: 12, lowerGoalShots: 3, shotsMissedAuto: 0, upperGoalAuto: 7, lowerGoalAuto: 0, playedDefense: 0, climbing: 0},
37 Stats{teamNumber: 1234, matchNumber: 7, shotsMissed: 3, upperGoalShots: 4, lowerGoalShots: 0, shotsMissedAuto: 0, upperGoalAuto: 9, lowerGoalAuto: 0, playedDefense: 0, climbing: 0},
38 }
39 db.AddToMatch(Match{matchNumber: 7, round: 1, compLevel: "quals", r1: 1236, r2: 1001, r3: 777, b1: 1000, b2: 4321, b3: 1234, r1ID: 1, r2ID: 2, r3ID: 3, b1ID: 4, b2ID: 5, b3ID: 6})
40 for i := 0; i < len(correct); i++ {
41 db.AddToStats(correct[i])
42 }
43 got, error_ := db.ReturnStats()
44 if error_ != nil {
45 t.Fatalf(error_.Error())
46 }
47 if !reflect.DeepEqual(correct, got) {
48 t.Errorf("Got %#v,\nbut expected %#v.", got, correct)
49 }
50 db.Delete()
51}
52
53func TestQueryMatchDB(t *testing.T) {
54 db, error_ := NewDatabase()
55 if error_ != nil {
56 t.Fatalf(error_.Error())
57 fmt.Println("Error creating new database")
58 }
59
60 testDatabase := []Match{
61 Match{matchNumber: 2, round: 1, compLevel: "quals", r1: 251, r2: 169, r3: 286, b1: 253, b2: 538, b3: 149},
62 Match{matchNumber: 4, round: 1, compLevel: "quals", r1: 198, r2: 135, r3: 777, b1: 999, b2: 434, b3: 698},
63 Match{matchNumber: 3, round: 1, compLevel: "quals", r1: 147, r2: 421, r3: 538, b1: 126, b2: 448, b3: 262},
64 Match{matchNumber: 6, round: 1, compLevel: "quals", r1: 191, r2: 132, r3: 773, b1: 994, b2: 435, b3: 696},
65 }
66
67 for i := 0; i < len(testDatabase); i++ {
68 db.AddToMatch(testDatabase[i])
69 }
70
71 correct := []Match{
72 Match{matchNumber: 2, round: 1, compLevel: "quals", r1: 251, r2: 169, r3: 286, b1: 253, b2: 538, b3: 149, r1ID: 1, r2ID: 2, r3ID: 3, b1ID: 4, b2ID: 5, b3ID: 6},
73 Match{matchNumber: 3, round: 1, compLevel: "quals", r1: 147, r2: 421, r3: 538, b1: 126, b2: 448, b3: 262, r1ID: 13, r2ID: 14, r3ID: 15, b1ID: 16, b2ID: 17, b3ID: 18},
74 }
75
76 got, error_ := db.QueryMatches(538)
77 if !reflect.DeepEqual(correct, got) {
78 t.Fatalf("Got %#v,\nbut expected %#v.", got, correct)
79 }
80 db.Delete()
81}
82
83func TestQueryStatsDB(t *testing.T) {
84 db, error_ := NewDatabase()
85 if error_ != nil {
86 t.Fatalf(error_.Error())
87 }
88 testDatabase := []Stats{
89 Stats{teamNumber: 1235, matchNumber: 94, shotsMissed: 2, upperGoalShots: 2, lowerGoalShots: 2, shotsMissedAuto: 2, upperGoalAuto: 2, lowerGoalAuto: 2, playedDefense: 2, climbing: 2},
90 Stats{teamNumber: 1234, matchNumber: 94, shotsMissed: 4, upperGoalShots: 4, lowerGoalShots: 4, shotsMissedAuto: 4, upperGoalAuto: 4, lowerGoalAuto: 4, playedDefense: 7, climbing: 2},
91 Stats{teamNumber: 1233, matchNumber: 94, shotsMissed: 3, upperGoalShots: 3, lowerGoalShots: 3, shotsMissedAuto: 3, upperGoalAuto: 3, lowerGoalAuto: 3, playedDefense: 3, climbing: 3},
92 Stats{teamNumber: 1232, matchNumber: 94, shotsMissed: 5, upperGoalShots: 5, lowerGoalShots: 5, shotsMissedAuto: 5, upperGoalAuto: 5, lowerGoalAuto: 5, playedDefense: 7, climbing: 1},
93 Stats{teamNumber: 1231, matchNumber: 94, shotsMissed: 6, upperGoalShots: 6, lowerGoalShots: 6, shotsMissedAuto: 6, upperGoalAuto: 6, lowerGoalAuto: 6, playedDefense: 7, climbing: 1},
94 Stats{teamNumber: 1239, matchNumber: 94, shotsMissed: 7, upperGoalShots: 7, lowerGoalShots: 7, shotsMissedAuto: 7, upperGoalAuto: 7, lowerGoalAuto: 3, playedDefense: 7, climbing: 1},
95 }
96 db.AddToMatch(Match{matchNumber: 94, round: 1, compLevel: "quals", r1: 1235, r2: 1234, r3: 1233, b1: 1232, b2: 1231, b3: 1239})
97 for i := 0; i < len(testDatabase); i++ {
98 db.AddToStats(testDatabase[i])
99 }
100 correct := []Stats{
101 Stats{teamNumber: 1235, matchNumber: 94, shotsMissed: 2, upperGoalShots: 2, lowerGoalShots: 2, shotsMissedAuto: 2, upperGoalAuto: 2, lowerGoalAuto: 2, playedDefense: 2, climbing: 2},
102 }
103 got, error_ := db.QueryStats(1235)
104 if error_ != nil {
105 t.Fatalf(error_.Error())
106 }
107 if !reflect.DeepEqual(correct, got) {
108 t.Errorf("Got %#v,\nbut expected %#v.", got, correct)
109 }
110 db.Delete()
111}
112
113func TestReturnMatchDB(t *testing.T) {
114 db, error_ := NewDatabase()
115 if error_ != nil {
116 t.Fatalf(error_.Error())
117 }
118 correct := []Match{
119 Match{matchNumber: 2, round: 1, compLevel: "quals", r1: 251, r2: 169, r3: 286, b1: 253, b2: 538, b3: 149, r1ID: 1, r2ID: 2, r3ID: 3, b1ID: 4, b2ID: 5, b3ID: 6},
120 Match{matchNumber: 3, round: 1, compLevel: "quals", r1: 147, r2: 421, r3: 538, b1: 126, b2: 448, b3: 262, r1ID: 7, r2ID: 8, r3ID: 9, b1ID: 10, b2ID: 11, b3ID: 12},
121 Match{matchNumber: 4, round: 1, compLevel: "quals", r1: 251, r2: 169, r3: 286, b1: 653, b2: 538, b3: 149, r1ID: 13, r2ID: 14, r3ID: 15, b1ID: 16, b2ID: 17, b3ID: 18},
122 Match{matchNumber: 5, round: 1, compLevel: "quals", r1: 198, r2: 1421, r3: 538, b1: 26, b2: 448, b3: 262, r1ID: 19, r2ID: 20, r3ID: 21, b1ID: 22, b2ID: 23, b3ID: 24},
123 Match{matchNumber: 6, round: 1, compLevel: "quals", r1: 251, r2: 188, r3: 286, b1: 555, b2: 538, b3: 149, r1ID: 25, r2ID: 26, r3ID: 27, b1ID: 28, b2ID: 29, b3ID: 30},
124 }
125 for i := 0; i < len(correct); i++ {
126 db.AddToMatch(correct[i])
127 }
128 got, error_ := db.ReturnMatches()
129 if error_ != nil {
130 t.Fatalf(error_.Error())
131 }
132 if !reflect.DeepEqual(correct, got) {
133 t.Errorf("Got %#v,\nbut expected %#v.", got, correct)
134 }
135 db.Delete()
136}
137
138func TestReturnStatsDB(t *testing.T) {
139 db, error_ := NewDatabase()
140 if error_ != nil {
141 t.Fatalf(error_.Error())
142 }
143 correct := []Stats{
144 Stats{teamNumber: 1235, matchNumber: 94, shotsMissed: 2, upperGoalShots: 2, lowerGoalShots: 2, shotsMissedAuto: 2, upperGoalAuto: 2, lowerGoalAuto: 2, playedDefense: 2, climbing: 2},
145 Stats{teamNumber: 1236, matchNumber: 94, shotsMissed: 4, upperGoalShots: 4, lowerGoalShots: 4, shotsMissedAuto: 4, upperGoalAuto: 4, lowerGoalAuto: 4, playedDefense: 7, climbing: 2},
146 Stats{teamNumber: 1237, matchNumber: 94, shotsMissed: 3, upperGoalShots: 3, lowerGoalShots: 3, shotsMissedAuto: 3, upperGoalAuto: 3, lowerGoalAuto: 3, playedDefense: 3, climbing: 3},
147 Stats{teamNumber: 1238, matchNumber: 94, shotsMissed: 5, upperGoalShots: 5, lowerGoalShots: 5, shotsMissedAuto: 5, upperGoalAuto: 5, lowerGoalAuto: 5, playedDefense: 7, climbing: 1},
148 Stats{teamNumber: 1239, matchNumber: 94, shotsMissed: 6, upperGoalShots: 6, lowerGoalShots: 6, shotsMissedAuto: 6, upperGoalAuto: 6, lowerGoalAuto: 6, playedDefense: 7, climbing: 1},
149 Stats{teamNumber: 1233, matchNumber: 94, shotsMissed: 7, upperGoalShots: 7, lowerGoalShots: 7, shotsMissedAuto: 7, upperGoalAuto: 7, lowerGoalAuto: 3, playedDefense: 7, climbing: 1},
150 }
151 db.AddToMatch(Match{matchNumber: 94, round: 1, compLevel: "quals", r1: 1235, r2: 1236, r3: 1237, b1: 1238, b2: 1239, b3: 1233})
152 for i := 0; i < len(correct); i++ {
153 db.AddToStats(correct[i])
154 }
155 got, error_ := db.ReturnStats()
156 if error_ != nil {
157 t.Fatalf(error_.Error())
158 }
159 if !reflect.DeepEqual(correct, got) {
160 t.Errorf("Got %#v,\nbut expected %#v.", got, correct)
161 }
162 db.Delete()
163}