Skip to content

Commit 2dbf296

Browse files
authored
finding number of digits using logs created with unit tests
1 parent cf62ede commit 2dbf296

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ __pycache__/
1313
/*.egg
1414
# docs
1515
build/
16-
16+
pythonenv3.8/
1717
.vscode/

algorithms/maths/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@
1818
from .find_order_simple import *
1919
from .find_primitive_root_simple import *
2020
from .diffie_hellman_key_exchange import *
21+
from .num_digits import *

algorithms/maths/num_digits.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
"""
2+
num_digits() method will return the number of digits of a number in O(1) time using math.log10() method.
3+
"""
4+
5+
import math
6+
7+
def num_digits(n):
8+
if(n==0):
9+
return 1;
10+
return int(math.log10(n))+1

tests/test_maths.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
cosine_similarity,
2020
find_order,
2121
find_primitive_root,
22-
alice_private_key, alice_public_key, bob_private_key, bob_public_key, alice_shared_key, bob_shared_key, diffie_hellman_key_exchange
22+
alice_private_key, alice_public_key, bob_private_key, bob_public_key, alice_shared_key, bob_shared_key, diffie_hellman_key_exchange,
23+
num_digits
2324
)
2425

2526
import unittest
@@ -369,6 +370,18 @@ def test_find_order_simple(self):
369370
self.assertFalse(diffie_hellman_key_exchange(5, 211))
370371
self.assertTrue(diffie_hellman_key_exchange(11, 971))
371372

373+
class TestNumberOfDigits(unittest.TestCase):
374+
"""[summary]
375+
Test for the file num_digits.py
376+
377+
Arguments:
378+
unittest {[type]} -- [description]
379+
"""
380+
def test_num_digits(self):
381+
self.assertEqual(2,num_digits(12))
382+
self.assertEqual(5,num_digits(99999))
383+
self.assertEqual(1,num_digits(8))
384+
372385
if __name__ == "__main__":
373386
unittest.main()
374387

0 commit comments

Comments
 (0)