def boolean_array_invalid_type1():
    a = BooleanValueArray(
        [True,
         'False'])  # noqa: F841 it's ok for this variable to never be used
def test_python_only_boolean():
    def return_true():
        return True

    def return_false():
        return False

    def return_one():
        return 1

    def return_string():
        return "string"

    # Boolean datatype creation from other boolean forms
    assert BooleanValue(True).value
    assert BooleanValue(return_true()).value
    assert BooleanValue(not return_false()).value
    assert BooleanValue(BooleanValue(True)).value
    assert BooleanValue(BooleanValue(True).value).value
    assert BooleanValue(BooleanValue(return_true())).value
    assert not BooleanValue(False).value
    assert not BooleanValue(return_false()).value
    assert not BooleanValue(not return_true()).value
    assert not BooleanValue(BooleanValue(False)).value
    assert not BooleanValue(BooleanValue(False).value).value
    assert not BooleanValue(BooleanValue(return_false())).value

    # Boolean datatype creation from numeric forms
    assert BooleanValue(1).value
    assert BooleanValue(return_one()).value
    assert BooleanValue(DoubleValue(1)).value
    assert BooleanValue(DoubleValue(1).value).value

    assert not BooleanValue(0).value
    assert not BooleanValue(DoubleValue(0).value).value
    assert not BooleanValue(DoubleValue(0)).value

    # Boolean datatype creation from expression
    assert BooleanValue(True and True).value
    assert not BooleanValue(False and True).value
    assert BooleanValue(5 < 10).value
    assert not BooleanValue(return_one() > 1).value

    # Boolean datatype creation from array
    assert BooleanValue(BooleanValueArray([True, False])[0]).value
    assert not BooleanValue(([True, False])[1]).value
    assert BooleanValue(BooleanValueArray([True, False])[0].value).value
    assert not BooleanValue(([True, False])[1]).value

    # Boolean datatype creation from strings
    assert BooleanValue('True').value
    assert not BooleanValue('False').value
    assert BooleanValue('true').value
    assert not BooleanValue('false').value

    # Boolean datatype creation that should fail
    with pytest.raises(TypeError):
        BooleanValue('string')
    with pytest.raises(TypeError):
        BooleanValue(object())
    with pytest.raises(TypeError):
        BooleanValue([])
    with pytest.raises(TypeError):
        BooleanValue(BooleanValueArray([True]))
def boolean_array_type_run():
    a = BooleanValueArray([True, False, 1, 0])
    return a[3].value
def boolean_array_one_element_run():
    a = BooleanValueArray([1])
    return a[0].value
def boolean_array_empty():
    a = BooleanValueArray(
        [])  # noqa: F841 it's ok for this variable to never be used
def boolean_array_type():
    a = BooleanValueArray(
        [True, False, 1,
         0])  # noqa: F841 it's ok for this variable to never be used
def boolean_array_one_element():
    a = BooleanValueArray(
        [1])  # noqa: F841 it's ok for this variable to never be used