From af39566aee8b74d6bf8f9f8bc5f8dff7d22aef01 Mon Sep 17 00:00:00 2001 From: Neha Yadav Date: Wed, 6 Apr 2016 17:55:29 +0530 Subject: [PATCH 1/3] Add Linear search and Queue --- docs/source/searching.rst | 6 ++++++ pydsa/__init__.py | 2 ++ pydsa/linear_search.py | 15 +++++++++++++++ pydsa/queue.py | 24 ++++++++++++++++++++++++ pydsa/tests/test_linear_search.py | 7 +++++++ pydsa/tests/test_queue.py | 16 ++++++++++++++++ 6 files changed, 70 insertions(+) create mode 100644 pydsa/linear_search.py create mode 100644 pydsa/queue.py create mode 100644 pydsa/tests/test_linear_search.py create mode 100644 pydsa/tests/test_queue.py diff --git a/docs/source/searching.rst b/docs/source/searching.rst index d8ff44b..5931480 100644 --- a/docs/source/searching.rst +++ b/docs/source/searching.rst @@ -10,3 +10,9 @@ Binary Search -------------- .. autofunction:: pydsa.binary_search + + +Linear Search +------------- + +.. autofunction:: pydsa.linear_search diff --git a/pydsa/__init__.py b/pydsa/__init__.py index c3e31cb..3d1aa26 100644 --- a/pydsa/__init__.py +++ b/pydsa/__init__.py @@ -7,3 +7,5 @@ from .sleep_sort import sleep_sort from .bfs import bfs from .binary_search import binary_search +from .linear_search import linear_search +from .queue import * diff --git a/pydsa/linear_search.py b/pydsa/linear_search.py new file mode 100644 index 0000000..6814094 --- /dev/null +++ b/pydsa/linear_search.py @@ -0,0 +1,15 @@ +def linear_search(List, item): + """ + Find the element in list using linear search + >>> from pydsa import linear_search + >>> List = [3, 4, 6, 8, 12, 15, 26] + >>> item = 6 + >>> linear_search(List, item) + 2 + """ + + index = len(List) + for i in range(0, index): + if List[i] == item: + return i + return -1 diff --git a/pydsa/queue.py b/pydsa/queue.py new file mode 100644 index 0000000..0a1dfc9 --- /dev/null +++ b/pydsa/queue.py @@ -0,0 +1,24 @@ +class Queue(object): + def __init__(self): + self.List = [] + + def isEmpty(self): + return not len(self.List) + + def enqueue(item): + """ + Insert element in queue. + """ + self.List.append(item) + + def dequeue(self): + """ + Remove element from front of the Queue. + """ + return self.List.popleft() + + def size(self): + """ + Return size of Queue. + """ + return len(self.List) diff --git a/pydsa/tests/test_linear_search.py b/pydsa/tests/test_linear_search.py new file mode 100644 index 0000000..d444c1e --- /dev/null +++ b/pydsa/tests/test_linear_search.py @@ -0,0 +1,7 @@ +from pydsa.linear_search import linear_search + + +def test_linear_search(): + List = [4, 17, 9, 12, 5, 16] + item = 12 + assert linear_search(List, item) == 3 diff --git a/pydsa/tests/test_queue.py b/pydsa/tests/test_queue.py new file mode 100644 index 0000000..98bfe96 --- /dev/null +++ b/pydsa/tests/test_queue.py @@ -0,0 +1,16 @@ +from pydsa.queue import * + + +def test_queue(): + def __init__self(self, size): + self.queue = Queue() + queue.size = 5 + def test_enqueue(self): + self.queue.enqueue(3) + self.queue.enqueue(7) + self.queue.enqueue(13) + self.queue.enqueue(9) + self.assertEqual(size() == 3) + def test_dequeue(self): + self.dequeue() + self.assertTrue(size() == 2) From 7f6789cfce1493d5f96d5efb441feea21836eee2 Mon Sep 17 00:00:00 2001 From: Neha Yadav Date: Sat, 9 Apr 2016 06:34:21 +0530 Subject: [PATCH 2/3] Add changes --- pydsa/__init__.py | 2 +- pydsa/linear_search.py | 1 - pydsa/tests/test_queue.py | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pydsa/__init__.py b/pydsa/__init__.py index 3d1aa26..61f6428 100644 --- a/pydsa/__init__.py +++ b/pydsa/__init__.py @@ -8,4 +8,4 @@ from .bfs import bfs from .binary_search import binary_search from .linear_search import linear_search -from .queue import * +from .queue import Queue diff --git a/pydsa/linear_search.py b/pydsa/linear_search.py index 6814094..ce63c1f 100644 --- a/pydsa/linear_search.py +++ b/pydsa/linear_search.py @@ -7,7 +7,6 @@ def linear_search(List, item): >>> linear_search(List, item) 2 """ - index = len(List) for i in range(0, index): if List[i] == item: diff --git a/pydsa/tests/test_queue.py b/pydsa/tests/test_queue.py index 98bfe96..4e215e7 100644 --- a/pydsa/tests/test_queue.py +++ b/pydsa/tests/test_queue.py @@ -1,4 +1,4 @@ -from pydsa.queue import * +from pydsa.queue import Queue def test_queue(): From 73e53fb24760be57e81b618d7332967da91421a4 Mon Sep 17 00:00:00 2001 From: Neha Yadav Date: Sat, 9 Apr 2016 19:36:24 +0530 Subject: [PATCH 3/3] Modify test case --- pydsa/__init__.py | 2 +- pydsa/queue.py | 17 +++++++++++++---- pydsa/tests/test_queue.py | 22 +++++++++------------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/pydsa/__init__.py b/pydsa/__init__.py index 61f6428..ff0174a 100644 --- a/pydsa/__init__.py +++ b/pydsa/__init__.py @@ -8,4 +8,4 @@ from .bfs import bfs from .binary_search import binary_search from .linear_search import linear_search -from .queue import Queue +from .queue import queue diff --git a/pydsa/queue.py b/pydsa/queue.py index 0a1dfc9..23c793b 100644 --- a/pydsa/queue.py +++ b/pydsa/queue.py @@ -1,11 +1,20 @@ -class Queue(object): +class queue(object): + """ + >>> from pydsa import queue + >>> q = queue() + >>> q.enqueue(5) + >>> q.enqueue(8) + >>> q.enqueue(19) + >>> q.dequeue() + 5 + """ def __init__(self): self.List = [] def isEmpty(self): - return not len(self.List) + return self.List == [] - def enqueue(item): + def enqueue(self, item): """ Insert element in queue. """ @@ -15,7 +24,7 @@ def dequeue(self): """ Remove element from front of the Queue. """ - return self.List.popleft() + return self.List.pop(0) def size(self): """ diff --git a/pydsa/tests/test_queue.py b/pydsa/tests/test_queue.py index 4e215e7..b5ea2f7 100644 --- a/pydsa/tests/test_queue.py +++ b/pydsa/tests/test_queue.py @@ -1,16 +1,12 @@ -from pydsa.queue import Queue +from pydsa.queue import queue def test_queue(): - def __init__self(self, size): - self.queue = Queue() - queue.size = 5 - def test_enqueue(self): - self.queue.enqueue(3) - self.queue.enqueue(7) - self.queue.enqueue(13) - self.queue.enqueue(9) - self.assertEqual(size() == 3) - def test_dequeue(self): - self.dequeue() - self.assertTrue(size() == 2) + q = queue() + q.enqueue(5) + q.enqueue(9) + q.enqueue(12) + q.enqueue(20) + assert q.dequeue() == 5 + assert q.dequeue() == 9 + assert q.size() == 2