assertTrue($isPrime); } /** * @return array */ public function dataProviderForPrimeNumbers(): array { return [ [2], [3], [5], [7], [11], [13], [17], [19], [23], [29], [31], [37], [41], [43], [47], [53], [59], [61], [67], [71], [73], [79], [83], [89], [97], [101], [103], [107], [109], [113], [127], [131], [137], [139], [149], [151], [157], [163], [167], [173], [179], [181], [191], [193], [197], [199], [211], [223], [227], [229], [233], [239], [241], [251], [257], [263], [269], [271], [277], [281], [283], [293], [307], [311], [313], [317], [331], [337], [347], [349], [353], [359], [367], [373], [379], [383], [389], [397], [401], [409], [419], [421], [431], [433], [439], [443], [449], [457], [461], [463], [467], [479], [487], [491], [499], [503], [509], [521], [523], [541], [547], [557], [563], [569], [571], [577], [587], [593], [599], [601], [607], [613], [617], [619], [631], [641], [643], [647], [653], [659], [661], [673], [677], [683], [691], [701], [709], [719], [727], [733], [739], [743], [751], [757], [761], [769], [773], [787], [797], [809], [811], [821], [823], [827], [829], [839], [853], [857], [859], [863], [877], [881], [883], [887], [907], [911], [919], [929], [937], [941], [947], [953], [967], [971], [977], [983], [991], [997], [1009], [1013], [1019], [1021], [1031], [1033], [1039], [1049], [1051], [1061], [1063], [1069], [1087], [1091], [1093], [1097], [1103], [1109], [1117], [1123], [1129], [1151], [1153], [1163], [1171], [1181], [1187], [1193], [1201], [1213], [1217], [1223], [1229], [1231], [1237], [1249], [1259], [1277], [1279], [1283], [1289], [1291], [1297], [1301], [1303], [1307], [1319], [1321], [1327], [1361], [1367], [1373], [1381], [1399], [1409], [1423], [1427], [1429], [1433], [1439], [1447], [1451], [1453], [1459], [1471], [1481], [1483], [1487], [1489], [1493], [1499], [1511], [1523], [1531], [1543], [1549], [1553], [1559], [1567], [1571], [1579], [1583], [1597], [1601], [1607], [1609], [1613], [1619], [1621], [1627], [1637], [1657], [1663], [1667], [1669], [1693], [1697], [1699], [1709], [1721], [1723], [1733], [1741], [1747], [1753], [1759], [1777], [1783], [1787], [1789], [1801], [1811], [1823], [1831], [1847], [1861], [1867], [1871], [1873], [1877], [1879], [1889], [1901], [1907], [1913], [1931], [1933], [1949], [1951], [1973], [1979], [1987], [1993], [1997], [1999], [2003], [2011], [2017], [2027], [2029], [2039], [2053], [2063], [2069], [2081], [2083], [2087], [2089], [2099], [2111], [2113], [2129], [2131], [2137], [2141], [2143], [2153], [2161], [2179], [2203], [2207], [2213], [2221], [2237], [2239], [2243], [2251], [2267], [2269], [2273], [2281], [2287], [2293], [2297], [2309], [2311], [2333], [2339], [2341], [2347], [2351], [2357], [2371], [2377], [2381], [2383], [2389], [2393], [2399], [2411], [2417], [2423], [2437], [2441], [2447], [2459], [2467], [2473], [2477], [2503], [2521], [2531], [2539], [2543], [2549], [2551], [2557], [2579], [2591], [2593], [2609], [2617], [2621], [2633], [2647], [2657], [2659], [2663], [2671], [2677], [2683], [2687], [2689], [2693], [2699], [2707], [2711], [2713], [2719], [2729], [2731], [2741], [2749], [2753], [2767], [2777], [2789], [2791], [2797], [2801], [2803], [2819], [2833], [2837], [2843], [2851], [2857], [2861], [2879], [2887], [2897], [2903], [2909], [2917], [2927], [2939], [2953], [2957], [2963], [2969], [2971], [2999], [3001], [3011], [3019], [3023], [3037], [3041], [3049], [3061], [3067], [3079], [3083], [3089], [3109], [3119], [3121], [3137], [3163], [3167], [3169], [3181], [3187], [3191], [3203], [3209], [3217], [3221], [3229], [3251], [3253], [3257], [3259], [3271], [3299], [3301], [3307], [3313], [3319], [3323], [3329], [3331], [3343], [3347], [3359], [3361], [3371], [3373], [3389], [3391], [3407], [3413], [3433], [3449], [3457], [3461], [3463], [3467], [3469], [3491], [3499], [3511], [3517], [3527], [3529], [3533], [3539], [3541], [3547], [3557], [3559], [3571], [3581], [3583], [3593], [3607], [3613], [3617], [3623], [3631], [3637], [3643], [3659], [3671], [3673], [3677], [3691], [3697], [3701], [3709], [3719], [3727], [3733], [3739], [3761], [3767], [3769], [3779], [3793], [3797], [3803], [3821], [3823], [3833], [3847], [3851], [3853], [3863], [3877], [3881], [3889], [3907], [3911], [3917], [3919], [3923], [3929], [3931], [3943], [3947], [3967], [3989], [4001], [4003], [4007], [4013], [4019], [4021], [4027], [4049], [4051], [4057], [4073], [4079], [4091], [4093], [4099], [4111], [4127], [4129], [4133], [4139], [4153], [4157], [4159], [4177], [4201], [4211], [4217], [4219], [4229], [4231], [4241], [4243], [4253], [4259], [4261], [4271], [4273], [4283], [4289], [4297], [4327], [4337], [4339], [4349], [4357], [4363], [4373], [4391], [4397], [4409], [4421], [4423], [4441], [4447], [4451], [4457], [4463], [4481], [4483], [4493], [4507], [4513], [4517], [4519], [4523], [4547], [4549], [4561], [4567], [4583], [4591], [4597], [4603], [4621], [4637], [4639], [4643], [4649], [4651], [4657], [4663], [4673], [4679], [4691], [4703], [4721], [4723], [4729], [4733], [4751], [4759], [4783], [4787], [4789], [4793], [4799], [4801], [4813], [4817], [4831], [4861], [4871], [4877], [4889], [4903], [4909], [4919], [4931], [4933], [4937], [4943], [4951], [4957], [4967], [4969], [4973], [4987], [4993], [4999], ]; } /** * @return array */ public function dataProviderForSuperPrimeNumbers(): array { return [ [4535189], [131807699], [2724711961], [64988430769], [1765037224331], [53982894593057], ]; } /** * @test isPrime - not prime * @dataProvider dataProviderForNonPrimeNumbers * @param int $n */ public function testIsNotPrime(int $n) { // When $isPrime = Integer::isPrime($n); // Then $this->assertFalse($isPrime); } /** * @return array */ public function dataProviderForNonPrimeNumbers(): array { return [ [-3], [-2], [-1], [0], [1], [4], [6], [8], [9], [10], [12], [14], [15], [16], [18], [21], [20], [22], [24], [25], [26], [27], [28], [30], [32], [33], [34], [35], [36], [38], [39], [40], [42], [44], [45], [46], [48], [49], [50], [51], [52], [54], [56], [55], [57], [58], [60], [63], [62], [64], [65], [66], [69], [68], [70], [72], [75], [74], [76], [78], [77], [80], ]; } /** * @test isPrime * @dataProvider dataProviderForPrimeNumberSequence * @param int $n */ public function testIsPrimeUsingPrimeSequence(int $n) { // When $isPrime = Integer::isPrime($n); // Then $this->assertTrue($isPrime); } /** * @return \Generator */ public function dataProviderForPrimeNumberSequence(): \Generator { foreach (Advanced::primesUpTo(100) as $prime) { yield [$prime]; } } }