summaryrefslogtreecommitdiff
path: root/factors/factors_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'factors/factors_test.go')
-rw-r--r--factors/factors_test.go61
1 files changed, 57 insertions, 4 deletions
diff --git a/factors/factors_test.go b/factors/factors_test.go
index db6e098..12d4384 100644
--- a/factors/factors_test.go
+++ b/factors/factors_test.go
@@ -87,7 +87,7 @@ var factorScoreCases = map[uint]float64{
func TestFactorScore(t *testing.T) {
// factors.Score is accurate enough that we can test for exact floats!
- tableTest(t, Score, factorScoreCases, stdEquals[float64], "Score")
+ tableTest(t, Score, factorScoreCases, stdEquals, "Score")
}
var basicRankCases = map[uint]string{
@@ -97,7 +97,7 @@ var basicRankCases = map[uint]string{
}
func TestBasicRank(t *testing.T) {
- tableTest(t, BasicRank, basicRankCases, stdEquals[string], "BasicRank")
+ tableTest(t, BasicRank, basicRankCases, stdEquals, "BasicRank")
}
var gcdCases = map[struct{ a, b uint }]uint{
@@ -114,7 +114,7 @@ func gcdTest(c struct{ a, b uint }) uint {
}
func TestGCD(t *testing.T) {
- tableTest(t, gcdTest, gcdCases, stdEquals[uint], "gcd")
+ tableTest(t, gcdTest, gcdCases, stdEquals, "gcd")
}
var mtcCases = map[uint]uint{
@@ -127,7 +127,60 @@ var mtcCases = map[uint]uint{
}
func TestMTC(t *testing.T) {
- tableTest(t, MTC, mtcCases, stdEquals[uint], "MTC")
+ tableTest(t, MTC, mtcCases, stdEquals, "MTC")
+}
+
+var sanCases = map[uint32]bool{
+ 1: true, 2: true, 4: true, 6: true, 12: true, 24: true, 36: true,
+ 48: true, 60: true, 120: true, 180: true, 240: true, 360: true,
+ 720: true, 840: true, 1260: true, 1680: true, 2520: true, 5040: true,
+ 10080: true, 15120: true, 25200: true, 27720: true, 55440: true,
+ 3: false, 8: false, 13: false, 18: false, 20: false, 30: false,
+ 31: false, 72: false, 107: false, 135: false, 144: false, 300: false,
+ 1728: false, 4000: false, 6912: false, 7560: false,
+}
+
+func TestSAN(t *testing.T) {
+ tableTest(t, isSAN, sanCases, stdEquals, "isSAN")
+}
+
+var expOrdCases = map[uint32]bool{
+ 1: true, 2: true, 4: true, 5: false, 6: true, 12: true, 18: false,
+ 20: false, 30: true, 44: false, 60: true, 70: false, 96: true,
+ 101: false, 120: true, 144: true, 770: false, 6912: true, 10010: false,
+}
+
+func TestExponentsOrdered(t *testing.T) {
+ tableTest(t, exponentsOrdered, expOrdCases, stdEquals, "exponentsOrdered")
+}
+
+var practicalCases = map[uint32]bool{
+ 1: true, 2: true, 4: true, 6: true, 8: true, 12: true, 16: true,
+ 18: true, 20: true, 24: true, 28: true, 30: true, 32: true, 36: true,
+ 48: true, 60: true, 120: true, 180: true, 240: true, 360: true,
+ 720: true, 840: true, 1260: true, 1680: true, 2520: true, 5040: true,
+ 10080: true, 15120: true, 25200: true, 27720: true, 55440: true,
+ 3: false, 10: false, 27: false, 44: false, 45: false, 68: false,
+ 70: false, 114: false, 121: false, 770: false, 1729: false, 10010: false,
+}
+
+func TestPractical(t *testing.T) {
+ tableTest(t, practical, practicalCases, stdEquals, "practical")
+}
+
+var typeCases = map[uint32]NumberType {
+ 2: ColossallyAbundant, 3: NotPractical, 4: Superabundant,
+ 6: ColossallyAbundant, 8: OrderedExponent, 10: NotPractical,
+ 12: ColossallyAbundant, 18: Practical, 20: Practical, 24: Superabundant,
+ 28: Practical, 30: OrderedExponent, 31: NotPractical, 34: NotPractical,
+ 60: ColossallyAbundant, 70: NotPractical, 90: Practical,
+ 120: ColossallyAbundant, 240: Superabundant, 720: Superabundant,
+ 770: NotPractical, 1729: NotPractical, 6912: OrderedExponent,
+ 10010: NotPractical, 10080: Superabundant,
+}
+
+func TestType(t *testing.T) {
+ tableTest(t, Type, typeCases, stdEquals, "Type")
}
// to be used as the equal paramater for tableTest