code: def test_arraycomprehensionmap():
      a = ArrayComprehensionMap(lambda i: i + 1, (i, 1, 5))
      assert a.doit().tolist() == [2, 3, 4, 5, 6]
      assert a.shape == (5,)
      assert a.is_shape_numeric
      assert a.tolist() == [2, 3, 4, 5, 6]
      assert len(a) == 5
      assert isinstance(a.doit(), ImmutableDenseNDimArray)
      expr = ArrayComprehensionMap(lambda i: i + 1, (i, 1, k))
      assert expr.doit() == expr
      assert expr.subs(k, 4) == ArrayComprehensionMap(
          lambda i: i + 1, (i, 1, 4)
      )
      assert expr.subs(k, 4).doit() == ImmutableDenseNDimArray(
          [2, 3, 4, 5]
      )
      b = ArrayComprehensionMap(
          lambda i: i + 1, (i, 1, 2), (i, 1, 3), (i, 1, 4), (i, 1, 5)
      )
      assert b.doit().tolist() == [
          [
              [
                  [2, 3, 4, 5, 6],
                  [3, 5, 7, 9, 11],
                  [4, 7, 10, 13, 16],
                  [5, 9, 13, 17, 21],
              ],
              [
                  [3, 5, 7, 9, 11],
                  [5, 9, 13, 17, 21],
                  [7, 13, 19, 25, 31],
                  [9, 17, 25, 33, 41],
              ],
              [
                  [4, 7, 10, 13, 16],
                  [7, 13, 19, 25, 31],
                  [10, 19, 28, 37, 46],
                  [13, 25, 37, 49, 61],
              ],
          ],
          [
              [
                  [3, 5, 7, 9, 11],
                  [5, 9, 13, 17, 21],
                  [7, 13, 19, 25, 31],
                  [9, 17, 25, 33, 41],
              ],
              [
                  [5, 9, 13, 17, 21],
                  [9, 17, 25, 33, 41],
                  [13, 25, 37, 49, 61],
                  [17, 33, 49, 65, 81],
              ],
              [
                  [7, 13, 19, 25, 31],
                  [13, 25, 37, 49, 61],
                  [19, 37, 55, 73, 91],
                  [25, 49, 73, 97, 121],
              ],
          ],
      ]
  
      # tests about lambda expression
      assert ArrayComprehensionMap(
          lambda: 3, (i, 1, 5)
      ).doit().tolist() == [3, 3, 3, 3, 3]
      assert ArrayComprehensionMap(
          lambda i: i + 1, (i, 1, 5)
      ).doit().tolist() == [2, 3, 4, 5, 6]
      raises(
          ValueError,
          lambda: ArrayComprehensionMap(i * j, (i, 1, 3), (j, 2, 4)),
      )
      a = ArrayComprehensionMap(lambda i, j: i + j, (i, 1, 5))
      raises(ValueError, lambda: a.doit())
  
imports: from sympy.tensor.array.array_comprehension import ArrayComprehension, ArrayComprehensionMap
  from sympy.tensor.array import ImmutableDenseNDimArray
  from sympy.abc import i, j, k, l
  from sympy.testing.pytest import raises
  from sympy.matrices import Matrix
label_desc: Use image node_id 2 for calling a global function with example usage: test_arraycomprehensionmap() without return types