-- CHECKS AN ENUMERATED TYPE OF 256 ELEMENTS

with Instrument;
use Instrument;


procedure Centa2 is



    type Big_Enum is (

                      Enumeratee_Number_1,

                      Enumeratee_Number_2,

                      Enumeratee_Number_3,

                      Enumeratee_Number_4,

                      Enumeratee_Number_5,

                      Enumeratee_Number_6,

                      Enumeratee_Number_7,

                      Enumeratee_Number_8,

                      Enumeratee_Number_9,

                      Enumeratee_Number_10,

                      Enumeratee_Number_11,

                      Enumeratee_Number_12,

                      Enumeratee_Number_13,

                      Enumeratee_Number_14,

                      Enumeratee_Number_15,

                      Enumeratee_Number_16,

                      Enumeratee_Number_17,

                      Enumeratee_Number_18,

                      Enumeratee_Number_19,

                      Enumeratee_Number_20,

                      Enumeratee_Number_21,

                      Enumeratee_Number_22,

                      Enumeratee_Number_23,

                      Enumeratee_Number_24,

                      Enumeratee_Number_25,

                      Enumeratee_Number_26,

                      Enumeratee_Number_27,

                      Enumeratee_Number_28,

                      Enumeratee_Number_29,

                      Enumeratee_Number_30,

                      Enumeratee_Number_31,

                      Enumeratee_Number_32,

                      Enumeratee_Number_33,

                      Enumeratee_Number_34,

                      Enumeratee_Number_35,

                      Enumeratee_Number_36,

                      Enumeratee_Number_37,

                      Enumeratee_Number_38,

                      Enumeratee_Number_39,

                      Enumeratee_Number_40,

                      Enumeratee_Number_41,

                      Enumeratee_Number_42,

                      Enumeratee_Number_43,

                      Enumeratee_Number_44,

                      Enumeratee_Number_45,

                      Enumeratee_Number_46,

                      Enumeratee_Number_47,

                      Enumeratee_Number_48,

                      Enumeratee_Number_49,

                      Enumeratee_Number_50,

                      Enumeratee_Number_51,

                      Enumeratee_Number_52,

                      Enumeratee_Number_53,

                      Enumeratee_Number_54,

                      Enumeratee_Number_55,

                      Enumeratee_Number_56,

                      Enumeratee_Number_57,

                      Enumeratee_Number_58,

                      Enumeratee_Number_59,

                      Enumeratee_Number_60,

                      Enumeratee_Number_61,

                      Enumeratee_Number_62,

                      Enumeratee_Number_63,

                      Enumeratee_Number_64,

                      Enumeratee_Number_65,

                      Enumeratee_Number_66,

                      Enumeratee_Number_67,

                      Enumeratee_Number_68,

                      Enumeratee_Number_69,

                      Enumeratee_Number_70,

                      Enumeratee_Number_71,

                      Enumeratee_Number_72,

                      Enumeratee_Number_73,

                      Enumeratee_Number_74,

                      Enumeratee_Number_75,

                      Enumeratee_Number_76,

                      Enumeratee_Number_77,

                      Enumeratee_Number_78,

                      Enumeratee_Number_79,

                      Enumeratee_Number_80,

                      Enumeratee_Number_81,

                      Enumeratee_Number_82,

                      Enumeratee_Number_83,

                      Enumeratee_Number_84,

                      Enumeratee_Number_85,

                      Enumeratee_Number_86,

                      Enumeratee_Number_87,

                      Enumeratee_Number_88,

                      Enumeratee_Number_89,

                      Enumeratee_Number_90,

                      Enumeratee_Number_91,

                      Enumeratee_Number_92,

                      Enumeratee_Number_93,

                      Enumeratee_Number_94,

                      Enumeratee_Number_95,

                      Enumeratee_Number_96,

                      Enumeratee_Number_97,

                      Enumeratee_Number_98,

                      Enumeratee_Number_99,

                      Enumeratee_Number_100,

                      Enumeratee_Number_101,

                      Enumeratee_Number_102,

                      Enumeratee_Number_103,

                      Enumeratee_Number_104,

                      Enumeratee_Number_105,

                      Enumeratee_Number_106,

                      Enumeratee_Number_107,

                      Enumeratee_Number_108,

                      Enumeratee_Number_109,

                      Enumeratee_Number_110,

                      Enumeratee_Number_111,

                      Enumeratee_Number_112,

                      Enumeratee_Number_113,

                      Enumeratee_Number_114,

                      Enumeratee_Number_115,

                      Enumeratee_Number_116,

                      Enumeratee_Number_117,

                      Enumeratee_Number_118,

                      Enumeratee_Number_119,

                      Enumeratee_Number_120,

                      Enumeratee_Number_121,

                      Enumeratee_Number_122,

                      Enumeratee_Number_123,

                      Enumeratee_Number_124,

                      Enumeratee_Number_125,

                      Enumeratee_Number_126,

                      Enumeratee_Number_127,

                      Enumeratee_Number_128,

                      Enumeratee_Number_129,

                      Enumeratee_Number_130,

                      Enumeratee_Number_131,

                      Enumeratee_Number_132,

                      Enumeratee_Number_133,

                      Enumeratee_Number_134,

                      Enumeratee_Number_135,

                      Enumeratee_Number_136,

                      Enumeratee_Number_137,

                      Enumeratee_Number_138,

                      Enumeratee_Number_139,

                      Enumeratee_Number_140,

                      Enumeratee_Number_141,

                      Enumeratee_Number_142,

                      Enumeratee_Number_143,

                      Enumeratee_Number_144,

                      Enumeratee_Number_145,

                      Enumeratee_Number_146,

                      Enumeratee_Number_147,

                      Enumeratee_Number_148,

                      Enumeratee_Number_149,

                      Enumeratee_Number_150,

                      Enumeratee_Number_151,

                      Enumeratee_Number_152,

                      Enumeratee_Number_153,

                      Enumeratee_Number_154,

                      Enumeratee_Number_155,

                      Enumeratee_Number_156,

                      Enumeratee_Number_157,

                      Enumeratee_Number_158,

                      Enumeratee_Number_159,

                      Enumeratee_Number_160,

                      Enumeratee_Number_161,

                      Enumeratee_Number_162,

                      Enumeratee_Number_163,

                      Enumeratee_Number_164,

                      Enumeratee_Number_165,

                      Enumeratee_Number_166,

                      Enumeratee_Number_167,

                      Enumeratee_Number_168,

                      Enumeratee_Number_169,

                      Enumeratee_Number_170,

                      Enumeratee_Number_171,

                      Enumeratee_Number_172,

                      Enumeratee_Number_173,

                      Enumeratee_Number_174,

                      Enumeratee_Number_175,

                      Enumeratee_Number_176,

                      Enumeratee_Number_177,

                      Enumeratee_Number_178,

                      Enumeratee_Number_179,

                      Enumeratee_Number_180,

                      Enumeratee_Number_181,

                      Enumeratee_Number_182,

                      Enumeratee_Number_183,

                      Enumeratee_Number_184,

                      Enumeratee_Number_185,

                      Enumeratee_Number_186,

                      Enumeratee_Number_187,

                      Enumeratee_Number_188,

                      Enumeratee_Number_189,

                      Enumeratee_Number_190,

                      Enumeratee_Number_191,

                      Enumeratee_Number_192,

                      Enumeratee_Number_193,

                      Enumeratee_Number_194,

                      Enumeratee_Number_195,

                      Enumeratee_Number_196,

                      Enumeratee_Number_197,

                      Enumeratee_Number_198,

                      Enumeratee_Number_199,

                      Enumeratee_Number_200,

                      Enumeratee_Number_201,

                      Enumeratee_Number_202,

                      Enumeratee_Number_203,

                      Enumeratee_Number_204,

                      Enumeratee_Number_205,

                      Enumeratee_Number_206,

                      Enumeratee_Number_207,

                      Enumeratee_Number_208,

                      Enumeratee_Number_209,

                      Enumeratee_Number_210,

                      Enumeratee_Number_211,

                      Enumeratee_Number_212,

                      Enumeratee_Number_213,

                      Enumeratee_Number_214,

                      Enumeratee_Number_215,

                      Enumeratee_Number_216,

                      Enumeratee_Number_217,

                      Enumeratee_Number_218,

                      Enumeratee_Number_219,

                      Enumeratee_Number_220,

                      Enumeratee_Number_221,

                      Enumeratee_Number_222,

                      Enumeratee_Number_223,

                      Enumeratee_Number_224,

                      Enumeratee_Number_225,

                      Enumeratee_Number_226,

                      Enumeratee_Number_227,

                      Enumeratee_Number_228,

                      Enumeratee_Number_229,

                      Enumeratee_Number_230,

                      Enumeratee_Number_231,

                      Enumeratee_Number_232,

                      Enumeratee_Number_233,

                      Enumeratee_Number_234,

                      Enumeratee_Number_235,

                      Enumeratee_Number_236,

                      Enumeratee_Number_237,

                      Enumeratee_Number_238,

                      Enumeratee_Number_239,

                      Enumeratee_Number_240,

                      Enumeratee_Number_241,

                      Enumeratee_Number_242,

                      Enumeratee_Number_243,

                      Enumeratee_Number_244,

                      Enumeratee_Number_245,

                      Enumeratee_Number_246,

                      Enumeratee_Number_247,

                      Enumeratee_Number_248,

                      Enumeratee_Number_249,

                      Enumeratee_Number_250,

                      Enumeratee_Number_251,

                      Enumeratee_Number_252,

                      Enumeratee_Number_253,

                      Enumeratee_Number_254,

                      Enumeratee_Number_255,

                      Enumeratee_Number_256);



    An_Array : array (Big_Enum) of Integer;



    X : Big_Enum;



    J : Integer;



begin

    Start ("CENTA2", " CHECKING ENUMERATION TYPE OF 256 ELEMENTS");

    for I in 1 .. 1000 loop

        -- FIRST, A SANITY CHECK

        J := 0;

        for I in Big_Enum

            loop

            J := J + 1;

            An_Array (I) := Big_Enum'Pos (I);

        end loop;

        if J /= 256 then

            Comment ("FAILED (1)");

        end if;



        X := Enumeratee_Number_2;

        loop

            if not (An_Array (X) > An_Array (Big_Enum'Pred (X))) then

                Comment ("FAILED (2)");

            end if;

            exit when X = Enumeratee_Number_256;

            X := Big_Enum'Succ (X);

        end loop;

    end loop;

    Stop;



end Centa2;