Skip to content

Commit e5b19ae

Browse files
committed
Added implicit array tests
1 parent fb2a375 commit e5b19ae

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

pydatastructs/linear_data_structures/tests/test_arrays.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from pydatastructs.linear_data_structures import (
22
OneDimensionalArray, DynamicOneDimensionalArray,
3-
MultiDimensionalArray, ArrayForTrees)
3+
MultiDimensionalArray, ArrayForTrees, OneDimensionalImplicitArray)
44
from pydatastructs.utils.misc_util import Backend
55
from pydatastructs.utils.raises_util import raises
66
from pydatastructs.utils import TreeNode
@@ -155,3 +155,36 @@ def test_ArrayForTrees():
155155

156156
def test_cpp_ArrayForTrees():
157157
_test_ArrayForTrees(Backend.CPP)
158+
159+
def _test_OneDimensionalImplicitArray(backend: Backend):
160+
ODIA = OneDimensionalImplicitArray
161+
A = ODIA(int, lambda x: x + 1, 5, backend=backend)
162+
assert A[0] == 1
163+
assert A[1] == 2
164+
assert A[2] == 3
165+
assert A[3] == 4
166+
assert A[4] == 5
167+
assert raises(IndexError, lambda: A[5])
168+
assert raises(IndexError, lambda: A[-1])
169+
assert str(A) == "[1, 2, 3, 4, 5]"
170+
171+
A = ODIA(int, lambda x: (x + 2) ** 2, 10, backend=backend)
172+
assert A[0] == 4
173+
assert A[1] == 9
174+
assert A[2] == 16
175+
assert A[3] == 25
176+
assert A[4] == 36
177+
assert A[5] == 49
178+
assert A[6] == 64
179+
assert A[7] == 81
180+
assert A[8] == 100
181+
assert A[9] == 121
182+
assert raises(IndexError, lambda: A[10])
183+
assert raises(IndexError, lambda: A[-1])
184+
assert str(A) == "[4, 9, 16, 25, 36, 49, 64, 81, 100, 121]"
185+
186+
def test_OneDimensionalImplicitArray():
187+
_test_OneDimensionalImplicitArray(Backend.PYTHON)
188+
189+
def test_cpp_OneDimensionalImplicitArray():
190+
_test_OneDimensionalImplicitArray(Backend.CPP)

0 commit comments

Comments
 (0)