github.com/bproforigoss/kemadaxbot@v0.0.0-20220624072915-02d1d676250b/kemadaxbot_test.go (about) 1 package main 2 3 import ( 4 "testing" 5 ) 6 7 func TestPrimeFactorization(t *testing.T) { 8 9 got1 := primeFactorization(3884) 10 got2 := primeFactorization(100) 11 want1 := "2, 2" 12 want2 := "2, 2, 5, 5" 13 14 if got1.factorsWithCommas() != want1 { 15 t.Errorf("got %q, wanted %q", got1.factorsWithCommas(), want1) 16 } 17 if got2.factorsWithCommas() != want2 { 18 t.Errorf("got %q, wanted %q", got2.factorsWithCommas(), want2) 19 } 20 21 } 22 23 type IsPrimeTest struct { 24 number int 25 expected bool 26 } 27 28 var IsPrimeTests = []IsPrimeTest{ 29 IsPrimeTest{2, true}, 30 IsPrimeTest{4, false}, 31 IsPrimeTest{53, true}, 32 IsPrimeTest{1000000, false}, 33 } 34 35 func TestIsPrime(t *testing.T) { 36 37 for _, test := range IsPrimeTests { 38 if output := IsPrime(test.number); output != test.expected { 39 t.Errorf("Output %v not equal to expected %v", output, test.expected) 40 } 41 } 42 } 43 44 type convertTest struct { 45 number int 46 expected string 47 } 48 49 var convertTests = []convertTest{ 50 convertTest{1, "egy"}, 51 convertTest{1999, "egyezerkilencszázkilencvenkilenc"}, 52 convertTest{516784, "ötszáztizenhatezer-hétszáznyolcvannégy"}, 53 convertTest{1111111111, "egymilliárd-egyszáztizenegymillió-egyszáztizenegyezer-egyszáztizenegy"}, 54 } 55 56 func TestConvert(t *testing.T) { 57 for _, test := range convertTests { 58 if output := convert(test.number); output != test.expected { 59 t.Errorf("Output %v not equal to expected %v", output, test.expected) 60 } 61 } 62 63 } 64 65 func BenchmarkPrimeFactors(b *testing.B) { 66 primeFactorization(100) 67 }