//  [python]
def test_full():
    shapeInput = np.random.randint(
        1,
        100,
        [
            1,
        ],
    ).item()
    value = np.random.randint(
        1,
        100,
        [
            1,
        ],
    ).item()
    cArray = NumCpp.fullSquare(shapeInput, value)
    assert (
        cArray.shape[0] == shapeInput
        and cArray.shape[1] == shapeInput
        and cArray.size == shapeInput**2
        and np.all(cArray == value)
    )

    shapeInput = np.random.randint(
        1,
        100,
        [
            1,
        ],
    ).item()
    value = (
        np.random.randint(
            1,
            100,
            [
                1,
            ],
        ).item()
        + 1j
        * np.random.randint(
            1,
            100,
            [
                1,
            ],
        ).item()
    )
    cArray = NumCpp.fullSquareComplex(shapeInput, value)
    assert (
        cArray.shape[0] == shapeInput
        and cArray.shape[1] == shapeInput
        and cArray.size == shapeInput**2
        and np.all(cArray == value)
    )

    shapeInput = np.random.randint(
        2,
        100,
        [
            2,
        ],
    )
    value = np.random.randint(
        1,
        100,
        [
            1,
        ],
    ).item()
    cArray = NumCpp.fullRowCol(shapeInput[0].item(), shapeInput[1].item(), value)
    assert (
        cArray.shape[0] == shapeInput[0]
        and cArray.shape[1] == shapeInput[1]
        and cArray.size == shapeInput.prod()
        and np.all(cArray == value)
    )

    shapeInput = np.random.randint(
        2,
        100,
        [
            2,
        ],
    )
    value = (
        np.random.randint(
            1,
            100,
            [
                1,
            ],
        ).item()
        + 1j
        * np.random.randint(
            1,
            100,
            [
                1,
            ],
        ).item()
    )
    cArray = NumCpp.fullRowColComplex(shapeInput[0].item(), shapeInput[1].item(), value)
    assert (
        cArray.shape[0] == shapeInput[0]
        and cArray.shape[1] == shapeInput[1]
        and cArray.size == shapeInput.prod()
        and np.all(cArray == value)
    )

    shapeInput = np.random.randint(
        2,
        100,
        [
            2,
        ],
    )
    shape = NumCpp.Shape(shapeInput[0].item(), shapeInput[1].item())
    value = np.random.randint(
        1,
        100,
        [
            1,
        ],
    ).item()
    cArray = NumCpp.fullShape(shape, value)
    assert (
        cArray.shape[0] == shape.rows
        and cArray.shape[1] == shape.cols
        and cArray.size == shapeInput.prod()
        and np.all(cArray == value)
    )

    shapeInput = np.random.randint(
        2,
        100,
        [
            2,
        ],
    )
    shape = NumCpp.Shape(shapeInput[0].item(), shapeInput[1].item())
    value = np.random.randint(
        1,
        100,
        [
            1,
        ],
    ).item()
    cArray = NumCpp.fullShape(shape, value)
    assert (
        cArray.shape[0] == shape.rows
        and cArray.shape[1] == shape.cols
        and cArray.size == shapeInput.prod()
        and np.all(cArray == value)
    )