1
- package riemann_test
1
+ package divisordb_test
2
2
3
3
import (
4
4
"math/big"
5
5
"os"
6
6
"sort"
7
+ "testing"
8
+ "time"
7
9
8
10
"github.com/alexsanjoseph/riemann-divisor-sum-go/riemann"
11
+ "github.com/alexsanjoseph/riemann-divisor-sum-go/riemann/divisordb"
9
12
. "github.com/onsi/ginkgo/v2"
13
+ "github.com/onsi/ginkgo/v2/types"
10
14
. "github.com/onsi/gomega"
11
15
)
12
16
13
- const DivisorDBPath = "testDivisorDB.sqlite"
14
-
15
- func setupDivisorDB (inputDb riemann.DivisorDb ) riemann.DivisorDb {
16
- os .Remove (DivisorDBPath )
17
- db := riemann .DivisorDb (inputDb )
18
- db .Initialize ()
19
- return db
17
+ func TestDivisor (t * testing.T ) {
18
+ RegisterFailHandler (Fail )
19
+ RunSpecs (t , "DivisorDB Tests" , types.ReporterConfig {
20
+ SlowSpecThreshold : 100 * time .Millisecond ,
21
+ })
20
22
}
21
23
24
+ const DivisorDBPath = "testDivisorDB.sqlite"
25
+
22
26
var _ = AfterEach (func () {
23
27
os .Remove (DivisorDBPath )
24
28
})
25
29
26
30
var _ = Describe ("Parametrized Database Tests" , func () {
27
31
28
- DescribeTable ("is initially empty" , func (inputDb riemann .DivisorDb ) {
29
- db := setupDivisorDB (inputDb )
32
+ DescribeTable ("is initially empty" , func (inputDb divisordb .DivisorDb ) {
33
+ db := divisordb . SetupDivisorDB (inputDb , DivisorDBPath )
30
34
loadedData := db .Load ()
31
35
Expect (len (loadedData )).To (Equal (0 ))
32
36
33
37
},
34
- Entry ("SQLite" , & riemann .SqliteDivisorDb {DBPath : DivisorDBPath }),
35
- Entry ("In-Memory" , & riemann .InMemoryDivisorDb {}),
38
+ Entry ("SQLite" , & divisordb .SqliteDivisorDb {DBPath : DivisorDBPath }),
39
+ Entry ("In-Memory" , & divisordb .InMemoryDivisorDb {}),
36
40
)
37
41
38
- DescribeTable ("Multiple initializations should be Idempotent" , func (inputDb riemann .DivisorDb ) {
39
- db := setupDivisorDB (inputDb )
42
+ DescribeTable ("Multiple initializations should be Idempotent" , func (inputDb divisordb .DivisorDb ) {
43
+ db := divisordb . SetupDivisorDB (inputDb , DivisorDBPath )
40
44
db .Initialize ()
41
45
db .Initialize ()
42
46
Expect (true )
43
47
},
44
- Entry ("SQLite" , & riemann .SqliteDivisorDb {DBPath : DivisorDBPath }),
45
- Entry ("In-Memory" , & riemann .InMemoryDivisorDb {}),
48
+ Entry ("SQLite" , & divisordb .SqliteDivisorDb {DBPath : DivisorDBPath }),
49
+ Entry ("In-Memory" , & divisordb .InMemoryDivisorDb {}),
46
50
)
47
51
48
- DescribeTable ("Upserts correctly" , func (inputDb riemann .DivisorDb ) {
49
- db := setupDivisorDB (inputDb )
52
+ DescribeTable ("Upserts correctly" , func (inputDb divisordb .DivisorDb ) {
53
+ db := divisordb . SetupDivisorDB (inputDb , DivisorDBPath )
50
54
records := []riemann.RiemannDivisorSum {
51
55
{N : * big .NewInt (1 ), DivisorSum : * big .NewInt (1 ), WitnessValue : 1 },
52
56
{N : * big .NewInt (2 ), DivisorSum : * big .NewInt (2 ), WitnessValue : 2 },
@@ -93,12 +97,12 @@ var _ = Describe("Parametrized Database Tests", func() {
93
97
})
94
98
95
99
},
96
- Entry ("SQLite" , & riemann .SqliteDivisorDb {DBPath : DivisorDBPath }),
97
- Entry ("In-Memory" , & riemann .InMemoryDivisorDb {}),
100
+ Entry ("SQLite" , & divisordb .SqliteDivisorDb {DBPath : DivisorDBPath }),
101
+ Entry ("In-Memory" , & divisordb .InMemoryDivisorDb {}),
98
102
)
99
103
100
- DescribeTable ("Summarizes" , func (inputDb riemann .DivisorDb ) {
101
- db := setupDivisorDB (inputDb )
104
+ DescribeTable ("Summarizes" , func (inputDb divisordb .DivisorDb ) {
105
+ db := divisordb . SetupDivisorDB (inputDb , DivisorDBPath )
102
106
By ("correctly summarizing empty data" , func () {
103
107
summaryData := db .Summarize ()
104
108
expectedSummaryData := riemann.SummaryStats {
@@ -124,12 +128,12 @@ var _ = Describe("Parametrized Database Tests", func() {
124
128
})
125
129
126
130
},
127
- Entry ("SQLite" , & riemann .SqliteDivisorDb {DBPath : DivisorDBPath }),
128
- Entry ("In-Memory" , & riemann .InMemoryDivisorDb {}),
131
+ Entry ("SQLite" , & divisordb .SqliteDivisorDb {DBPath : DivisorDBPath }),
132
+ Entry ("In-Memory" , & divisordb .InMemoryDivisorDb {}),
129
133
)
130
134
131
- DescribeTable ("Summarizes for float values" , func (inputDb riemann .DivisorDb ) {
132
- db := setupDivisorDB (inputDb )
135
+ DescribeTable ("Summarizes for float values" , func (inputDb divisordb .DivisorDb ) {
136
+ db := divisordb . SetupDivisorDB (inputDb , DivisorDBPath )
133
137
By ("correctly summarizing non-empty data" , func () {
134
138
records := []riemann.RiemannDivisorSum {
135
139
{N : * big .NewInt (10092 ), DivisorSum : * big .NewInt (24388 ), WitnessValue : 1.088 },
@@ -144,19 +148,19 @@ var _ = Describe("Parametrized Database Tests", func() {
144
148
Expect (summaryData ).To (Equal (expectedSummaryData ))
145
149
})
146
150
},
147
- Entry ("SQLite" , & riemann .SqliteDivisorDb {DBPath : DivisorDBPath }),
148
- Entry ("In-Memory" , & riemann .InMemoryDivisorDb {}),
151
+ Entry ("SQLite" , & divisordb .SqliteDivisorDb {DBPath : DivisorDBPath }),
152
+ Entry ("In-Memory" , & divisordb .InMemoryDivisorDb {}),
149
153
)
150
154
151
155
Describe ("Represents Bigint Correctly in DB" , func () {
152
156
It ("should work correctly" , func () {
153
- actualOutput := riemann .GetStableTextRepresentationOfBigInt (* big .NewInt (1 ), 10 )
157
+ actualOutput := divisordb .GetStableTextRepresentationOfBigInt (* big .NewInt (1 ), 10 )
154
158
expectedOutput := "0000000001"
155
159
Expect (actualOutput ).To (Equal (expectedOutput ))
156
160
})
157
161
158
162
It ("should fail in large cases correctly" , func () {
159
- Expect (func () { riemann .GetStableTextRepresentationOfBigInt (* big .NewInt (100 ), 2 ) }).To (PanicWith ("number is bigger than can be represented by string" ))
163
+ Expect (func () { divisordb .GetStableTextRepresentationOfBigInt (* big .NewInt (100 ), 2 ) }).To (PanicWith ("number is bigger than can be represented by string" ))
160
164
})
161
165
162
166
})
0 commit comments