def test_read_mixed_array(fd):
    obj = create_mixed_array()

    assert ScriptDataECMAArray.read(fd) == obj
    assert fd.tell() == MIXED_VALUES_SIZE
def test_read_booleans_array(fd):
    assert ScriptDataECMAArray.read(fd) == ScriptDataECMAArray(foo=True)
    assert fd.tell() == BOOLEAN_VALUE_SIZE
def test_read_numbers_array(fd):
    assert ScriptDataECMAArray.read(fd) == ScriptDataECMAArray(foo=123)
    assert fd.tell() == NUMBER_VALUE_SIZE
def test_read_strings_array(fd):
    assert ScriptDataECMAArray.read(fd) == ScriptDataECMAArray(foo="bar")
    assert fd.tell() == STRING_VALUE_SIZE
def test_read_empty_array(fd):
    assert ScriptDataECMAArray.read(fd) == ScriptDataECMAArray()
    assert fd.tell() == EMPTY_ARRAY_SIZE