class TEST inherit SERIALIZATION_HELPER create make feature {NONE} -- Initialization make -- Run test. local list: LIST [ANY] l_obj: ANY l_objects: like retrieved_objects typed_pointer_any_default: TYPED_POINTER [ANY] typed_pointer_real_32_default: TYPED_POINTER [REAL_32] x: X do -- Fill a list with expanded objects. create {ARRAYED_LIST [ANY]} list.make_filled (17) list [1] := True list [2] := {CHARACTER_8} 'A' list [3] := {CHARACTER_32} 'B' list [4] := {INTEGER_8} -8 list [5] := {INTEGER_16} -16 list [6] := {INTEGER_32} -32 list [7] := {INTEGER_64} -64 list [8] := {NATURAL_8} 8 list [9] := {NATURAL_16} 16 list [10] := {NATURAL_32} 32 list [11] := {NATURAL_64} 64 list [12] := default_pointer list [13] := {REAL_32} 1.0e32 list [14] := {REAL_64} 1.0e64 list [15] := typed_pointer_any_default list [16] := typed_pointer_real_32_default x.set list [17] := x set_is_pointer_value_stored (True) store_object (list, "stored") l_objects := retrieved_objects ("stored") if l_objects.count /= storable_types.count then io.put_string ("Error occurred. List of successful retrieval:%N") across l_objects as l_item loop io.put_string ("Retrieved " + l_item.key + "%N") end else across l_objects as l_item loop io.put_string ("Retrieved " + l_item.key + "%N") if attached {ARRAYED_LIST [ANY]} l_item.item as l_list then check_list (l_list) else io.put_string ("Unable to retrieve the items%N") end io.put_new_line end end end check_list (a_list: ARRAYED_LIST [ANY]) local boolean: BOOLEAN character_8: CHARACTER_8 character_32: CHARACTER_32 integer_8: INTEGER_8 integer_16: INTEGER_16 integer_32: INTEGER_32 integer_64: INTEGER_64 natural_8: NATURAL_8 natural_16: NATURAL_16 natural_32: NATURAL_32 natural_64: NATURAL_64 pointer: POINTER real_32: REAL_32 real_64: REAL_64 typed_pointer_any_default: TYPED_POINTER [ANY] typed_pointer_any: TYPED_POINTER [ANY] typed_pointer_real_32_default: TYPED_POINTER [REAL_32] typed_pointer_real_32: TYPED_POINTER [REAL_32] x: X y: X do -- Verify list items. boolean ?= a_list [1] verify (boolean, boolean = True) character_8 ?= a_list [2] verify (character_8, character_8 = {CHARACTER_8} 'A') character_32 ?= a_list [3] verify (character_32, character_32 = {CHARACTER_32} 'B') integer_8 ?= a_list [4] verify (integer_8, integer_8 = {INTEGER_8} -8) integer_16 ?= a_list [5] verify (integer_16, integer_16 = {INTEGER_16} -16) integer_32 ?= a_list [6] verify (integer_32, integer_32 = {INTEGER_32} -32) integer_64 ?= a_list [7] verify (integer_64, integer_64 = {INTEGER_64} -64) natural_8 ?= a_list [8] verify (natural_8, natural_8 = {NATURAL_8} 8) natural_16 ?= a_list [9] verify (natural_16, natural_16 = {NATURAL_16} 16) natural_32 ?= a_list [10] verify (natural_32, natural_32 = {NATURAL_32} 32) natural_64 ?= a_list [11] verify (natural_64, natural_64 = {NATURAL_64} 64) pointer ?= a_list [12] verify (pointer, pointer = default_pointer) real_32 ?= a_list [13] verify (real_32, real_32 = {REAL_32} 1.0e32) real_64 ?= a_list [14] verify (real_64, real_64 = {REAL_64} 1.0e64) typed_pointer_any ?= a_list [15] verify (typed_pointer_any, typed_pointer_any = typed_pointer_any_default) typed_pointer_real_32 ?= a_list [16] verify (typed_pointer_real_32, typed_pointer_real_32 = typed_pointer_real_32_default) y ?= a_list [17] x.set verify (y, y = x) end feature {NONE} -- Output verify (object: ANY; is_expected: BOOLEAN) -- Verify for `object' that its value `is_expected' -- and output the corresponding message. do print (object.generating_type) if is_expected then io.put_string (": OK") else io.put_string (": Failed with value '") io.put_string (object.out) io.put_character ('%'') end io.put_new_line end end