-- Do not edit! Automatically created with doctest-extract from private/Numeric/FFTW/Extra/NumberTheory.hs {-# LINE 11 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} module DocTest.Numeric.FFTW.Extra.NumberTheory where import Test.DocTest.Base import qualified Test.DocTest.Driver as DocTest {-# LINE 12 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} import Numeric.FFTW.Extra.NumberTheory import qualified Test.QuickCheck as QC test :: DocTest.T () test = do DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:26: " {-# LINE 26 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 26 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} primeFactors (1::Int) ) [ExpectedLine [LineChunk "[]"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:28: " {-# LINE 28 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 28 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} primeFactors (2::Int) ) [ExpectedLine [LineChunk "[(2,1)]"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:30: " {-# LINE 30 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 30 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} primeFactors (3::Int) ) [ExpectedLine [LineChunk "[(3,1)]"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:32: " {-# LINE 32 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 32 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} primeFactors (4::Int) ) [ExpectedLine [LineChunk "[(2,2)]"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:34: " {-# LINE 34 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 34 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} primeFactors (44100::Int) ) [ExpectedLine [LineChunk "[(2,2),(3,2),(5,2),(7,2)]"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:36: " {-# LINE 36 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 36 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} primeFactors (48000::Int) ) [ExpectedLine [LineChunk "[(2,7),(3,1),(5,3)]"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:39: " {-# LINE 39 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 39 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> all (1<) $ map fst $ primeFactors (n::Int) ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:41: " {-# LINE 41 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 41 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> n == product (map (uncurry (^)) (primeFactors (n::Int))) ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:57: " {-# LINE 57 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 57 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> elem 1 $ divisors (n::Int) ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:58: " {-# LINE 58 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 58 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> elem n $ divisors (n::Int) ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:59: " {-# LINE 59 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 59 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> all (\k -> mod n k == 0) $ divisors (n::Int) ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:68: " {-# LINE 68 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 68 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} nextDivisor 44100 (1000::Int) ) [ExpectedLine [LineChunk "1050"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:70: " {-# LINE 70 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 70 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} nextDivisor 44100 (2000::Int) ) [ExpectedLine [LineChunk "2100"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:72: " {-# LINE 72 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 72 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} nextDivisor 44100 (3000::Int) ) [ExpectedLine [LineChunk "3150"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:74: " {-# LINE 74 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 74 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} nextDivisor 44100 (4000::Int) ) [ExpectedLine [LineChunk "4410"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:76: " {-# LINE 76 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 76 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} nextDivisor 48000 (1000::Int) ) [ExpectedLine [LineChunk "1000"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:78: " {-# LINE 78 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 78 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} nextDivisor 48000 (9000::Int) ) [ExpectedLine [LineChunk "9600"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:81: " {-# LINE 81 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 81 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> QC.forAll (QC.choose (1,n::Int)) $ \m -> let k = nextDivisor n m in m <= k && mod n k == 0 ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:88: " {-# LINE 88 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 88 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> QC.forAll (QC.elements (divisors (n::Int))) $ \k -> nextDivisor n k == k ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:99: " {-# LINE 99 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 99 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} adjacentDivisors 44100 (1000::Int) ) [ExpectedLine [LineChunk "(980,1050)"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:101: " {-# LINE 101 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 101 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} adjacentDivisors 44100 (2000::Int) ) [ExpectedLine [LineChunk "(1764,2100)"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:103: " {-# LINE 103 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 103 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} adjacentDivisors 44100 (3000::Int) ) [ExpectedLine [LineChunk "(2940,3150)"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:105: " {-# LINE 105 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 105 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} adjacentDivisors 44100 (4000::Int) ) [ExpectedLine [LineChunk "(3675,4410)"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:107: " {-# LINE 107 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 107 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} adjacentDivisors 48000 (1000::Int) ) [ExpectedLine [LineChunk "(1000,1000)"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:109: " {-# LINE 109 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 109 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} adjacentDivisors 48000 (9000::Int) ) [ExpectedLine [LineChunk "(8000,9600)"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:112: " {-# LINE 112 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 112 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> QC.forAll (QC.choose (1,n::Int)) $ \m -> let (lower,upper) = adjacentDivisors n m in lower <= m && m <= upper && mod n lower == 0 && mod n upper == 0 ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:121: " {-# LINE 121 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 121 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> QC.forAll (QC.elements (divisors (n::Int))) $ \k -> adjacentDivisors n k == (k,k) ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:134: " {-# LINE 134 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 134 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.NonNegative n) -> elem (ceilingPowerOfTwo (n::Int)) $ iterate (2*) 1 ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:135: " {-# LINE 135 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 135 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.NonNegative n) -> n <= ceilingPowerOfTwo (n::Int) ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:136: " {-# LINE 136 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 136 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> ceilingPowerOfTwo (n::Int) < 2*n ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:155: " {-# LINE 155 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 155 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} sqrtToPowerOfTwo (0::Integer) ) [ExpectedLine [LineChunk "0"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:157: " {-# LINE 157 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 157 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} sqrtToPowerOfTwo (1::Integer) ) [ExpectedLine [LineChunk "1"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:159: " {-# LINE 159 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 159 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} map sqrtToPowerOfTwo [7,8,9::Integer] ) [ExpectedLine [LineChunk "[2,4,4]"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:161: " {-# LINE 161 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 161 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} map sqrtToPowerOfTwo [15,16,17::Integer] ) [ExpectedLine [LineChunk "[4,4,4]"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:164: " {-# LINE 164 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 164 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> snd (divideMaxPower 2 (sqrtToPowerOfTwo (n::Integer))) == 1 ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:165: " {-# LINE 165 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 165 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.NonNegative n) -> let m = sqrtToPowerOfTwo (n::Integer) in m*m <= 2*n && n <= 4*m*m ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:182: " {-# LINE 182 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 182 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.NonNegative n) -> n <= larger5Smooth (n::Int) ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:183: " {-# LINE 183 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 183 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> 4 * larger5Smooth (n::Int) < 5*n ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:184: " {-# LINE 184 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 184 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.Positive n) -> (1==) $ foldl (\k d -> snd $ divideMaxPower d k) (larger5Smooth (n::Int)) [2,3,5] ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:232: " {-# LINE 232 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.example( {-# LINE 232 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} map ceilingEfficient [1..(40::Int)] ) [ExpectedLine [LineChunk "[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,18,20,20,24,24,24,24,25,30,30,30,30,30,32,32,36,36,36,36,40,40,40,40]"]] DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:234: " {-# LINE 234 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 234 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.NonNegative n) -> n <= ceilingEfficient (n::Int) ) DocTest.printPrefix "Numeric.FFTW.Extra.NumberTheory:235: " {-# LINE 235 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} DocTest.property( {-# LINE 235 "private/Numeric/FFTW/Extra/NumberTheory.hs" #-} \(QC.NonNegative n) -> 5 * ceilingEfficient n <= (6*n :: Int) )