|
1 | 1 | from pydatastructs.linear_data_structures import (
|
2 | 2 | OneDimensionalArray, DynamicOneDimensionalArray,
|
3 |
| - MultiDimensionalArray, ArrayForTrees) |
| 3 | + MultiDimensionalArray, ArrayForTrees, OneDimensionalImplicitArray) |
4 | 4 | from pydatastructs.utils.misc_util import Backend
|
5 | 5 | from pydatastructs.utils.raises_util import raises
|
6 | 6 | from pydatastructs.utils import TreeNode
|
@@ -155,3 +155,36 @@ def test_ArrayForTrees():
|
155 | 155 |
|
156 | 156 | def test_cpp_ArrayForTrees():
|
157 | 157 | _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