def test_size():
    assert ScriptDataValue.size(True) == BOOL_SIZE
    assert ScriptDataValue.size(None) == NULL_SIZE
    assert ScriptDataValue.size(150.5) == NUMBER_SIZE
    assert ScriptDataValue.size([]) == STRICT_ARRAY_SIZE
    assert ScriptDataValue.size(ScriptDataECMAArray()) == ECMA_ARRAY_SIZE
    assert ScriptDataValue.size(ScriptDataObject()) == OBJECT_SIZE
    assert ScriptDataValue.size("ABC") == STRING_SIZE
    assert ScriptDataValue.size(create_date()) == DATE_SIZE
    assert ScriptDataValue.size(create_reference()) == REFERENCE_SIZE
def test_unpack():
    assert ScriptDataValue.unpack(BOOL)[0] == True
    assert ScriptDataValue.unpack(NULL)[0] == None
    assert ScriptDataValue.unpack(NUMBER)[0] == 150.5
    assert ScriptDataValue.unpack(STRICT_ARRAY)[0] == []
    assert ScriptDataValue.unpack(ECMA_ARRAY)[0] == ScriptDataECMAArray()
    assert ScriptDataValue.unpack(OBJECT)[0] == ScriptDataObject()
    assert ScriptDataValue.unpack(STRING)[0] == "ABC"
    assert ScriptDataValue.unpack(DATE)[0] == create_date()
    assert ScriptDataValue.unpack(REFERENCE)[0] == create_reference()
def test_size():
    assert ScriptDataValue.size(True) == BOOL_SIZE
    assert ScriptDataValue.size(None) == NULL_SIZE
    assert ScriptDataValue.size(150.5) == NUMBER_SIZE
    assert ScriptDataValue.size([]) == STRICT_ARRAY_SIZE
    assert ScriptDataValue.size(ScriptDataECMAArray()) == ECMA_ARRAY_SIZE
    assert ScriptDataValue.size(ScriptDataObject()) == OBJECT_SIZE
    assert ScriptDataValue.size("ABC") == STRING_SIZE
    assert ScriptDataValue.size(create_date()) == DATE_SIZE
    assert ScriptDataValue.size(create_reference()) == REFERENCE_SIZE
def test_pack():
    assert ScriptDataValue(True) == BOOL
    assert ScriptDataValue(None) == NULL
    assert ScriptDataValue(150.5) == NUMBER
    assert ScriptDataValue([]) == STRICT_ARRAY
    assert ScriptDataValue(ScriptDataECMAArray()) == ECMA_ARRAY
    assert ScriptDataValue(ScriptDataObject()) == OBJECT
    assert ScriptDataValue("ABC") == STRING
    assert ScriptDataValue(create_date()) == DATE
    assert ScriptDataValue(create_reference()) == REFERENCE
def test_unpack():
    assert ScriptDataValue.unpack(BOOL)[0] == True
    assert ScriptDataValue.unpack(NULL)[0] == None
    assert ScriptDataValue.unpack(NUMBER)[0] == 150.5
    assert ScriptDataValue.unpack(STRICT_ARRAY)[0] == []
    assert ScriptDataValue.unpack(ECMA_ARRAY)[0] == ScriptDataECMAArray()
    assert ScriptDataValue.unpack(OBJECT)[0] == ScriptDataObject()
    assert ScriptDataValue.unpack(STRING)[0] == "ABC"
    assert ScriptDataValue.unpack(DATE)[0] == create_date()
    assert ScriptDataValue.unpack(REFERENCE)[0] == create_reference()