Skip to content

Commented doctests that were causing slowness at Travis. #1039

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 24 commits into from
Jul 18, 2019
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
401ed00
Added doctest and more explanation about Dijkstra execution.
brunohadlich Jul 14, 2019
d13eb2c
tests were not passing with python2 due to missing __init__.py file a…
brunohadlich Jul 14, 2019
0e4e788
Removed the dot at the beginning of the imported modules names becaus…
brunohadlich Jul 14, 2019
8c4c820
Moved global code to main scope and added doctest for project euler p…
brunohadlich Jul 14, 2019
9fa20b3
Added test case for negative input.
brunohadlich Jul 15, 2019
8b17220
Changed N variable to do not use end of line scape because in case th…
brunohadlich Jul 15, 2019
6c11811
Added problems description and doctests to the ones that were missing…
brunohadlich Jul 15, 2019
cf4a9cf
Merge remote-tracking branch 'upstream/master'
brunohadlich Jul 16, 2019
b69db30
Changed the way files are loaded to support pytest call.
brunohadlich Jul 16, 2019
efa4bad
Added __init__.py to problems to make them modules and allow pytest e…
brunohadlich Jul 16, 2019
abfee10
Added project_euler folder to test units execution
brunohadlich Jul 16, 2019
304c09c
Merge branch 'master' of https://github.com/TheAlgorithms/Python
brunohadlich Jul 16, 2019
aa87466
Changed 'os.path.split(os.path.realpath(__file__))' to 'os.path.dirna…
brunohadlich Jul 16, 2019
f0e1631
Merge branch 'master' of https://github.com/TheAlgorithms/Python
brunohadlich Jul 16, 2019
c08c4b5
Added Burrows-Wheeler transform algorithm.
brunohadlich Jul 17, 2019
cf3df56
Added changes suggested by cclauss
brunohadlich Jul 17, 2019
c7c9eef
Fixes for issue 'Fix the LGTM issues #1024'.
brunohadlich Jul 18, 2019
29ff563
Merge branch 'master' of https://github.com/TheAlgorithms/Python
brunohadlich Jul 18, 2019
3bcde58
Added doctest for different parameter types and negative values.
brunohadlich Jul 18, 2019
176e801
Fixed doctest issue added at last commit.
brunohadlich Jul 18, 2019
6c8a214
Commented doctest that were causing slowness at Travis.
brunohadlich Jul 18, 2019
fe502f9
Merge branch 'master' of https://github.com/TheAlgorithms/Python
brunohadlich Jul 18, 2019
f0c9f21
Added comment with the reason for some doctest commented.
brunohadlich Jul 18, 2019
d9df3a8
pytest --ignore
cclauss Jul 18, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion project_euler/problem_02/sol4.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"""
from __future__ import print_function
import math
from decimal import *
from decimal import Decimal, getcontext

try:
raw_input # Python 2
Expand All @@ -33,7 +33,31 @@ def solution(n):
0
>>> solution(34)
44
>>> solution(3.4)
2
>>> solution(0)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution(-17)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution([])
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
>>> solution("asd")
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
"""
try:
n = int(n)
except (TypeError, ValueError) as e:
raise TypeError("Parameter n must be int or passive of cast to int.")
if n <= 0:
raise ValueError("Parameter n must be greater or equal to one.")
getcontext().prec = 100
phi = (Decimal(5) ** Decimal(0.5) + 1) / Decimal(2)

Expand Down
27 changes: 25 additions & 2 deletions project_euler/problem_03/sol1.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,38 @@ def isprime(no):

def solution(n):
"""Returns the largest prime factor of a given number n.

>>> solution(13195)
29
>>> solution(10)
5
>>> solution(17)
17
>>> solution(3.4)
3
>>> solution(0)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution(-17)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution([])
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
>>> solution("asd")
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
"""
try:
n = int(n)
except (TypeError, ValueError) as e:
raise TypeError("Parameter n must be int or passive of cast to int.")
if n <= 0:
raise ValueError("Parameter n must be greater or equal to one.")
maxNumber = 0
if isprime(n):
return n
Expand All @@ -54,7 +78,6 @@ def solution(n):
elif isprime(i):
maxNumber = i
return maxNumber
return int(sum)


if __name__ == "__main__":
Expand Down
27 changes: 25 additions & 2 deletions project_euler/problem_03/sol2.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
e.g. for 10, largest prime factor = 5. For 17, largest prime factor = 17.
"""
from __future__ import print_function, division
import math

try:
raw_input # Python 2
Expand All @@ -16,14 +15,38 @@

def solution(n):
"""Returns the largest prime factor of a given number n.

>>> solution(13195)
29
>>> solution(10)
5
>>> solution(17)
17
>>> solution(3.4)
3
>>> solution(0)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution(-17)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution([])
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
>>> solution("asd")
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
"""
try:
n = int(n)
except (TypeError, ValueError) as e:
raise TypeError("Parameter n must be int or passive of cast to int.")
if n <= 0:
raise ValueError("Parameter n must be greater or equal to one.")
prime = 1
i = 2
while i * i <= n:
Expand Down
27 changes: 25 additions & 2 deletions project_euler/problem_05/sol1.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
def solution(n):
"""Returns the smallest positive number that is evenly divisible(divisible
with no remainder) by all of the numbers from 1 to n.

>>> solution(10)
2520
>>> solution(15)
Expand All @@ -26,7 +26,31 @@ def solution(n):
232792560
>>> solution(22)
232792560
>>> solution(3.4)
6
>>> solution(0)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution(-17)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution([])
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
>>> solution("asd")
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
"""
try:
n = int(n)
except (TypeError, ValueError) as e:
raise TypeError("Parameter n must be int or passive of cast to int.")
if n <= 0:
raise ValueError("Parameter n must be greater or equal to one.")
i = 0
while 1:
i += n * (n - 1)
Expand All @@ -39,7 +63,6 @@ def solution(n):
if i == 0:
i = 1
return i
break


if __name__ == "__main__":
Expand Down
25 changes: 24 additions & 1 deletion project_euler/problem_07/sol2.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
We can see that the 6th prime is 13. What is the Nth prime number?
"""
from __future__ import print_function
from math import sqrt

try:
raw_input # Python 2
Expand Down Expand Up @@ -37,7 +36,31 @@ def solution(n):
229
>>> solution(100)
541
>>> solution(3.4)
5
>>> solution(0)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution(-17)
Traceback (most recent call last):
...
ValueError: Parameter n must be greater or equal to one.
>>> solution([])
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
>>> solution("asd")
Traceback (most recent call last):
...
TypeError: Parameter n must be int or passive of cast to int.
"""
try:
n = int(n)
except (TypeError, ValueError) as e:
raise TypeError("Parameter n must be int or passive of cast to int.")
if n <= 0:
raise ValueError("Parameter n must be greater or equal to one.")
primes = []
num = 2
while len(primes) < n:
Expand Down
5 changes: 2 additions & 3 deletions project_euler/problem_09/sol1.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ def solution():
2. a**2 + b**2 = c**2
3. a + b + c = 1000

>>> solution()
31875000
#>>> solution()
#31875000
"""
for a in range(300):
for b in range(400):
Expand All @@ -28,7 +28,6 @@ def solution():
if (a ** 2) + (b ** 2) == (c ** 2):
if (a + b + c) == 1000:
return a * b * c
break


if __name__ == "__main__":
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_09/sol3.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ def solution():
1. a**2 + b**2 = c**2
2. a + b + c = 1000

>>> solution()
31875000
#>>> solution()
#31875000
"""
return [
a * b * c
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_10/sol1.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ def sum_of_primes(n):
def solution(n):
"""Returns the sum of all the primes below n.

>>> solution(2000000)
142913828922
#>>> solution(2000000)
#142913828922
>>> solution(1000)
76127
>>> solution(5000)
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_10/sol2.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ def prime_generator():
def solution(n):
"""Returns the sum of all the primes below n.

>>> solution(2000000)
142913828922
#>>> solution(2000000)
#142913828922
>>> solution(1000)
76127
>>> solution(5000)
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_12/sol1.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ def solution():
"""Returns the value of the first triangle number to have over five hundred
divisors.

>>> solution()
76576500
#>>> solution()
#76576500
"""
tNum = 1
i = 1
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_12/sol2.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ def solution():
"""Returns the value of the first triangle number to have over five hundred
divisors.

>>> solution()
76576500
#>>> solution()
#76576500
"""
return next(
i for i in triangle_number_generator() if count_divisors(i) > 500
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_14/sol1.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ def solution(n):
n → n/2 (n is even)
n → 3n + 1 (n is odd)

>>> solution(1000000)
{'counter': 525, 'largest_number': 837799}
#>>> solution(1000000)
#{'counter': 525, 'largest_number': 837799}
>>> solution(200)
{'counter': 125, 'largest_number': 171}
>>> solution(5000)
Expand Down
4 changes: 2 additions & 2 deletions project_euler/problem_14/sol2.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ def collatz_sequence(n):
def solution(n):
"""Returns the number under n that generates the longest Collatz sequence.

>>> solution(1000000)
{'counter': 525, 'largest_number': 837799}
#>>> solution(1000000)
#{'counter': 525, 'largest_number': 837799}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#<space> please on both of these lines
Also, please add a comment on why these lines have been commented out.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

>>> solution(200)
{'counter': 125, 'largest_number': 171}
>>> solution(5000)
Expand Down
2 changes: 1 addition & 1 deletion project_euler/problem_19/sol1.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,4 @@ def solution():


if __name__ == "__main__":
print(solution(171))
print(solution())
1 change: 0 additions & 1 deletion project_euler/problem_234/sol1.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ def solution(n):
semidivisible = []
for x in range(n):
l=[i for i in input().split()]
c1=0
c2=1
while(1):
if len(fib(l[0],l[1],c2))<int(l[2]):
Expand Down