
-- 1: -- CXA4031.A
-- 2: --
-- 3: --                             Grant of Unlimited Rights
-- 4: --
-- 5: --     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
-- 6: --     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
-- 7: --     unlimited rights in the software and documentation contained herein.
-- 8: --     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making
-- 9: --     this public release, the Government intends to confer upon all
-- 10: --     recipients unlimited rights  equal to those held by the Government.
-- 11: --     These rights include rights to use, duplicate, release or disclose the
-- 12: --     released technical data and computer software in whole or in part, in
-- 13: --     any manner and for any purpose whatsoever, and to have or permit others
-- 14: --     to do so.
-- 15: --
-- 16: --                                    DISCLAIMER
-- 17: --
-- 18: --     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
-- 19: --     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
-- 20: --     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
-- 21: --     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
-- 22: --     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
-- 23: --     PARTICULAR PURPOSE OF SAID MATERIAL.
-- 24: --*
-- 25: --
-- 26: -- OBJECTIVE:
-- 27: --      Check that the subprograms defined in package Ada.Strings.Unbounded
-- 28: --      are available, and that they produce correct results. Specifically,
-- 29: --      check the functions To_Unbounded_String (version with Length
-- 30: --      parameter), "=", "<", "<=", ">", ">=" (all with String-Unbounded
-- 31: --      String parameter mix), as well as three versions of Procedure Append.
-- 32: --
-- 33: -- TEST DESCRIPTION:
-- 34: --      This test demonstrates the uses of many of the subprograms defined
-- 35: --      in package Ada.Strings.Unbounded for use with unbounded strings.
-- 36: --      The test simulates how unbounded strings could be processed in a
-- 37: --      user environment, using the subprograms provided in this package.
-- 38: --
-- 39: --      This test, when taken in conjunction with tests CXA4010, CXA4011,
-- 40: --      CXA4030, and CXA4032 will constitute a test of all the functionality
-- 41: --      contained in package Ada.Strings.Unbounded.  This test uses a variety
-- 42: --      of the subprograms defined in the unbounded string package in ways
-- 43: --      typical of common usage.
-- 44: --
-- 45: --
-- 46: -- CHANGE HISTORY:
-- 47: --      27 Feb 95   SAIC    Initial prerelease version.
-- 48: --      18 Apr 96   SAIC    Incorporated reviewer comments for ACVC 2.1.
-- 49: --
-- 50: --!

-- 51:

-- 52: with Report;

-- 53: with Ada.Exceptions;

-- 54: with Ada.Strings.Maps;

-- 55: with Jwa.Strings;
with jwa;
with ada;
with ada.ada__strings;
with ada;
with report;
with ada.ada__exceptions;
with ada.ada__strings.ada__strings__maps;
with jwa.jwa__strings;
with system.system__finalization_root;
with system.system__finalization_implementation;
with ada.ada__tags;
with system;
with interfaces;
with system.system__secondary_stack;
with system.system__soft_links;
with system.system__standard_library;
with ada.ada__exceptions;
with system.system__concat_2;

-- 56:

-- 57: procedure Test_Jwa_CXA4031 is
procedure test_jwa_cxa4031 is
   test_block : label

-- 58: begin
begin

-- 59:

-- 60:    Report.Test ("CXA4031", "Check that the subprograms defined in "        &
   report.report__test ("CXA4031",

-- 61:                            "package Ada.Strings.Unbounded are available, " &
     "Check that the subprograms defined in package Ada.Strings.Unbounded are available, and that they produce correct results");

-- 62:                            "and that they produce correct results");

-- 63:

-- 64:    Test_Block:

-- 65:    declare
   test_block : declare
      F5b : system__finalization_root__finalizable_ptr := null;
      procedure test_jwa_cxa4031__test_block___clean is
      begin
         system__soft_links__abort_defer.all;
         $system__finalization_implementation__finalize_list (F5b);
         system__soft_links__abort_undefer.all;
         return;
      end test_jwa_cxa4031__test_block___clean;
   begin
      js___XRP_jwa__strings___XE : _renaming_type;

-- 66:

-- 67:       package JS renames Jwa.Strings;
      package js renames jwa.jwa__strings;

-- 68:       use JS;
      use js;

-- 69:       use Ada.Exceptions;
      use ada.ada__exceptions;

-- 70:

-- 71:       subtype LC_Characters is Character range 'a'..'z';
      subtype test_jwa_cxa4031__test_block__lc_characters is character
        range 'a' .. 'z';

-- 72:

-- 73:       Null_String       : constant String := "";
      subtype test_jwa_cxa4031__test_block__Tnull_stringS is string (
        1 .. 0);
      null_string : constant string (1 .. 0) := "";

-- 74:       TC_String         : constant String := "A Standard String";
      subtype test_jwa_cxa4031__test_block__Ttc_stringS is string (
        1 .. 17);
      tc_string : constant string (1 .. 17) := "A Standard String";
      tc_unb_string : jwa__strings.jwa__strings__string_8 :=
        jwa__strings.jwa__strings__null_string_8;

-- 75:

-- 76:       TC_Unb_String,
      tc_unb_string._tag := jwa__strings__string_8P;
      jwa__strings__adjust__2 (tc_unb_string);
      $system__finalization_implementation__attach_to_final_list (F5b,
        system__finalization_root__finalizable?(tc_unb_string), 1);
      tc_new_unb_string : jwa__strings.jwa__strings__string_8 :=
        jwa__strings.jwa__strings__null_string_8;
      tc_new_unb_string._tag := jwa__strings__string_8P;
      jwa__strings__adjust__2 (tc_new_unb_string);
      $system__finalization_implementation__attach_to_final_list (F5b,
        system__finalization_root__finalizable?(tc_new_unb_string),
        1);
      L_1 : label
      begin
         E64b : boolean;

-- 77:       TC_New_Unb_String : JS.String_8 := JS.Null_String_8;

-- 78:

-- 79:    begin

-- 80:
-- 81:       -- Function To_Unbounded_String (version with Length parameter)
-- 82:       -- returns an unbounded string that represents an uninitialized String
-- 83:       -- whose length is Length.
-- 84:       -- Note: Unbounded_String length can vary conceptually between 0 and
-- 85:       --       Natural'Last.

-- 86:

-- 87:       if JS.Length(JS.Create(Length => 10)) /= 10 or

-- 88:          JS.Length(JS.Create(1))            /=  1 or

-- 89:          JS.Length(JS.Create(0))            /=  0 or
         B6b : declare
            M65b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F10b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B6b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F10b);
               $system__secondary_stack__ss_release (M65b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B6b___clean;
         begin
            type test_jwa_cxa4031__test_block__B6b__A7b is access all
              jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B6b__A7b []
            R8b : test_jwa_cxa4031__test_block__B6b__A7b :=
              jwa__strings.jwa__strings__create__3 (length => 10)
              'reference;
            $system__finalization_implementation__deep_tag_attach (F10b,
              R8b.all'address, 1);
            C11b : jwa__strings__string_8 renames R8b.all;
            C12b : natural;
            B14b : declare
               L13b : label
            begin
               if C11b.ptr = null then
                  C12b := 0;
                  goto L13b;
               else
                  R16b : jwa__strings__string_8_internal_ptr renames
                    C11b.ptr;
                  [constraint_error when
                    R16b = null
                    "access check failed"]
                  subtype test_jwa_cxa4031__test_block__B6b__B14b__S15b is
                    jwa__strings__string_8_data (R16b.all.capacity);
                  R18b : jwa__strings__string_8_internal_ptr renames
                    C11b.ptr;
                  [constraint_error when
                    R18b = null
                    "access check failed"]
                  [constraint_error when
                    not (interfaces__unsigned_32!(R18b.all.data.length) <=
                      16#7FFF_FFFF#)
                    "invalid data"]
                  C12b := R18b.all.data.length;
                  goto L13b;
               end if;
               <<L13b>>
            end B14b;
            type test_jwa_cxa4031__test_block__B6b__A19b is access all
              jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B6b__A19b []
            R20b : test_jwa_cxa4031__test_block__B6b__A19b :=
              jwa__strings.jwa__strings__create__3 (1)'reference;
            $system__finalization_implementation__deep_tag_attach (F10b,
              R20b.all'address, 1);
            C22b : jwa__strings__string_8 renames R20b.all;
            C23b : natural;
            B25b : declare
               L24b : label
            begin
               if C22b.ptr = null then
                  C23b := 0;
                  goto L24b;
               else
                  R27b : jwa__strings__string_8_internal_ptr renames
                    C22b.ptr;
                  [constraint_error when
                    R27b = null
                    "access check failed"]
                  subtype test_jwa_cxa4031__test_block__B6b__B25b__S26b is
                    jwa__strings__string_8_data (R27b.all.capacity);
                  R29b : jwa__strings__string_8_internal_ptr renames
                    C22b.ptr;
                  [constraint_error when
                    R29b = null
                    "access check failed"]
                  [constraint_error when
                    not (interfaces__unsigned_32!(R29b.all.data.length) <=
                      16#7FFF_FFFF#)
                    "invalid data"]
                  C23b := R29b.all.data.length;
                  goto L24b;
               end if;
               <<L24b>>
            end B25b;
            type test_jwa_cxa4031__test_block__B6b__A30b is access all
              jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B6b__A30b []
            R31b : test_jwa_cxa4031__test_block__B6b__A30b :=
              jwa__strings.jwa__strings__create__3 (0)'reference;
            $system__finalization_implementation__deep_tag_attach (F10b,
              R31b.all'address, 1);
            C33b : jwa__strings__string_8 renames R31b.all;
            C34b : natural;
            B36b : declare
               L35b : label
            begin
               if C33b.ptr = null then
                  C34b := 0;
                  goto L35b;
               else
                  R38b : jwa__strings__string_8_internal_ptr renames
                    C33b.ptr;
                  [constraint_error when
                    R38b = null
                    "access check failed"]
                  subtype test_jwa_cxa4031__test_block__B6b__B36b__S37b is
                    jwa__strings__string_8_data (R38b.all.capacity);
                  R40b : jwa__strings__string_8_internal_ptr renames
                    C33b.ptr;
                  [constraint_error when
                    R40b = null
                    "access check failed"]
                  [constraint_error when
                    not (interfaces__unsigned_32!(R40b.all.data.length) <=
                      16#7FFF_FFFF#)
                    "invalid data"]
                  C34b := R40b.all.data.length;
                  goto L35b;
               end if;
               <<L35b>>
            end B36b;

-- 90:          JS.Length(JS."&"(JS.Create(Length => 10),
            type test_jwa_cxa4031__test_block__B6b__A41b is access all
              jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B6b__A41b []
            R42b : test_jwa_cxa4031__test_block__B6b__A41b :=
              jwa__strings.jwa__strings__create__3 (length => 10)
              'reference;
            $system__finalization_implementation__deep_tag_attach (F10b,
              R42b.all'address, 1);

-- 91:                    JS."&"(JS.Create(1),
            type test_jwa_cxa4031__test_block__B6b__A44b is access all
              jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B6b__A44b []
            R45b : test_jwa_cxa4031__test_block__B6b__A44b :=
              jwa__strings.jwa__strings__create__3 (1)'reference;
            $system__finalization_implementation__deep_tag_attach (F10b,
              R45b.all'address, 1);

-- 92:                             JS.Create(0) ))) /= 10+1+0
            type test_jwa_cxa4031__test_block__B6b__A47b is access all
              jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B6b__A47b []
            R48b : test_jwa_cxa4031__test_block__B6b__A47b :=
              jwa__strings.jwa__strings__create__3 (0)'reference;
            $system__finalization_implementation__deep_tag_attach (F10b,
              R48b.all'address, 1);
            type test_jwa_cxa4031__test_block__B6b__A50b is access all
              jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B6b__A50b []
            R51b : test_jwa_cxa4031__test_block__B6b__A50b :=
              jwa__strings.Oconcat (R45b.all, R48b.all)'reference;
            $system__finalization_implementation__deep_tag_attach (F10b,
              R51b.all'address, 1);
            type test_jwa_cxa4031__test_block__B6b__A53b is access all
              jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B6b__A53b []
            R54b : test_jwa_cxa4031__test_block__B6b__A53b :=
              jwa__strings.Oconcat (R42b.all, R51b.all)'reference;
            $system__finalization_implementation__deep_tag_attach (F10b,
              R54b.all'address, 1);
            C56b : jwa__strings__string_8 renames R54b.all;
            C57b : natural;
            B59b : declare
               L58b : label
            begin
               if C56b.ptr = null then
                  C57b := 0;
                  goto L58b;
               else
                  R61b : jwa__strings__string_8_internal_ptr renames
                    C56b.ptr;
                  [constraint_error when
                    R61b = null
                    "access check failed"]
                  subtype test_jwa_cxa4031__test_block__B6b__B59b__S60b is
                    jwa__strings__string_8_data (R61b.all.capacity);
                  R63b : jwa__strings__string_8_internal_ptr renames
                    C56b.ptr;
                  [constraint_error when
                    R63b = null
                    "access check failed"]
                  [constraint_error when
                    not (interfaces__unsigned_32!(R63b.all.data.length) <=
                      16#7FFF_FFFF#)
                    "invalid data"]
                  C57b := R63b.all.data.length;
                  goto L58b;
               end if;
               <<L58b>>
            end B59b;
            E64b := C12b /= 10 or C23b /= 1 or C34b /= 0 or C57b /=
              11;
         at end
            test_jwa_cxa4031__test_block__B6b___clean;
         end B6b;
         if E64b then

-- 93:       then

-- 94:          Report.Failed
            report.report__failed (

-- 95:            ("Incorrect results from Function To_Unbounded_String with " &
              "Incorrect results from Function To_Unbounded_String with Length parameter");
         end if;

-- 96:             "Length parameter");

-- 97:       end if;

-- 98:

-- 99:
-- 100:       -- Procedure Append (Unbounded - Unbounded)
-- 101:       -- Note: For each of the Append procedures, the resulting string
-- 102:       --       represented by the Source parameter is given by the
-- 103:       --       concatenation of the original value of Source and the value
-- 104:       --       of New_Item.

-- 105:

-- 106:       TC_Unb_String := JS.To_String_8("Sample string of length L");
         B67b : declare
            M74b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F72b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B67b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F72b);
               $system__secondary_stack__ss_release (M74b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B67b___clean;
         begin
            type test_jwa_cxa4031__test_block__B67b__A69b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B67b__A69b []
            R70b : test_jwa_cxa4031__test_block__B67b__A69b :=
              jwa__strings.jwa__strings__create__2 (
              "Sample string of length L")'reference;
            $system__finalization_implementation__deep_tag_attach (F72b,
              R70b.all'address, 1);
            B73b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R70b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B73b;
         at end
            test_jwa_cxa4031__test_block__B67b___clean;
         end B67b;

-- 107:       TC_New_Unb_String := JS.To_String_8(" and then some");
         B75b : declare
            M82b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F80b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B75b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F80b);
               $system__secondary_stack__ss_release (M82b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B75b___clean;
         begin
            type test_jwa_cxa4031__test_block__B75b__A77b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B75b__A77b []
            R78b : test_jwa_cxa4031__test_block__B75b__A77b :=
              jwa__strings.jwa__strings__create__2 (" and then some")
              'reference;
            $system__finalization_implementation__deep_tag_attach (F80b,
              R78b.all'address, 1);
            B81b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_new_unb_string, R78b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B81b;
         at end
            test_jwa_cxa4031__test_block__B75b___clean;
         end B75b;

-- 108:

-- 109:       JS.Append(Source => TC_Unb_String, New_Item => TC_New_Unb_String);
         jwa__strings.jwa__strings__append (source => tc_unb_string,
           new_item => tc_new_unb_string);
         E89b : boolean;

-- 110:

-- 111:       if TC_Unb_String /=
         B83b : declare
            M90b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F88b : system__finalization_root__finalizable_ptr := null;

-- 112:          JS.To_String_8("Sample string of length L and then some")
            procedure test_jwa_cxa4031__test_block__B83b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F88b);
               $system__secondary_stack__ss_release (M90b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B83b___clean;
         begin
            type test_jwa_cxa4031__test_block__B83b__A85b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B83b__A85b []
            R86b : test_jwa_cxa4031__test_block__B83b__A85b :=
              jwa__strings.jwa__strings__create__2 (
              "Sample string of length L and then some")'reference;
            $system__finalization_implementation__deep_tag_attach (F88b,
              R86b.all'address, 1);
            E89b := not (jwa__strings__Oeq (tc_unb_string, R86b.all));
         at end
            test_jwa_cxa4031__test_block__B83b___clean;
         end B83b;
         if E89b then

-- 113:       then

-- 114:          Report.Failed("Incorrect results from Procedure Append with " &
            report.report__failed (
              "Incorrect results from Procedure Append with unbounded string parameters - 1");
         end if;

-- 115:                        "unbounded string parameters - 1");

-- 116:       end if;

-- 117:

-- 118:

-- 119:       TC_Unb_String := JS.To_String_8("Sample string of length L");
         B92b : declare
            M99b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F97b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B92b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F97b);
               $system__secondary_stack__ss_release (M99b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B92b___clean;
         begin
            type test_jwa_cxa4031__test_block__B92b__A94b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B92b__A94b []
            R95b : test_jwa_cxa4031__test_block__B92b__A94b :=
              jwa__strings.jwa__strings__create__2 (
              "Sample string of length L")'reference;
            $system__finalization_implementation__deep_tag_attach (F97b,
              R95b.all'address, 1);
            B98b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R95b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B98b;
         at end
            test_jwa_cxa4031__test_block__B92b___clean;
         end B92b;

-- 120:       TC_New_Unb_String := JS.Null_String_8;
         B100b : begin
            system__soft_links__abort_defer.all;
            jwa__strings___assign__2 (tc_new_unb_string, jwa__strings.
              jwa__strings__null_string_8);
         at end
            system__standard_library__abort_undefer_direct;
         end B100b;

-- 121:

-- 122:       JS.Append(TC_Unb_String, TC_New_Unb_String);
         jwa__strings.jwa__strings__append (tc_unb_string,
           tc_new_unb_string);
         E107b : boolean;

-- 123:

-- 124:       if TC_Unb_String /=
         B101b : declare
            M108b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F106b : system__finalization_root__finalizable_ptr := null;

-- 125:          JS.To_String_8("Sample string of length L")
            procedure test_jwa_cxa4031__test_block__B101b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F106b);
               $system__secondary_stack__ss_release (M108b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B101b___clean;
         begin
            type test_jwa_cxa4031__test_block__B101b__A103b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B101b__A103b []
            R104b : test_jwa_cxa4031__test_block__B101b__A103b :=
              jwa__strings.jwa__strings__create__2 (
              "Sample string of length L")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F106b, R104b.all'address, 1);
            E107b := not (jwa__strings__Oeq (tc_unb_string, R104b.all));
         at end
            test_jwa_cxa4031__test_block__B101b___clean;
         end B101b;
         if E107b then

-- 126:       then

-- 127:          Report.Failed("Incorrect results from Procedure Append with " &
            report.report__failed (
              "Incorrect results from Procedure Append with unbounded string parameters - 2");
         end if;

-- 128:                        "unbounded string parameters - 2");

-- 129:       end if;

-- 130:

-- 131:

-- 132:       TC_Unb_String := JS.Null_String_8;
         B110b : begin
            system__soft_links__abort_defer.all;
            jwa__strings___assign__2 (tc_unb_string, jwa__strings.
              jwa__strings__null_string_8);
         at end
            system__standard_library__abort_undefer_direct;
         end B110b;

-- 133:

-- 134:       JS.Append(TC_Unb_String,
         B111b : declare
            M117b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F116b : system__finalization_root__finalizable_ptr := null;

-- 135:                  JS.To_String_8("New Unbounded String"));
            procedure test_jwa_cxa4031__test_block__B111b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F116b);
               $system__secondary_stack__ss_release (M117b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B111b___clean;
         begin
            type test_jwa_cxa4031__test_block__B111b__A113b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B111b__A113b []
            R114b : test_jwa_cxa4031__test_block__B111b__A113b :=
              jwa__strings.jwa__strings__create__2 (
              "New Unbounded String")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F116b, R114b.all'address, 1);
            jwa__strings.jwa__strings__append (tc_unb_string, R114b.all);
         at end
            test_jwa_cxa4031__test_block__B111b___clean;
         end B111b;
         E124b : boolean;

-- 136:

-- 137:       if TC_Unb_String /=
         B118b : declare
            M125b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F123b : system__finalization_root__finalizable_ptr := null;

-- 138:          JS.To_String_8("New Unbounded String")
            procedure test_jwa_cxa4031__test_block__B118b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F123b);
               $system__secondary_stack__ss_release (M125b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B118b___clean;
         begin
            type test_jwa_cxa4031__test_block__B118b__A120b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B118b__A120b []
            R121b : test_jwa_cxa4031__test_block__B118b__A120b :=
              jwa__strings.jwa__strings__create__2 (
              "New Unbounded String")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F123b, R121b.all'address, 1);
            E124b := not (jwa__strings__Oeq (tc_unb_string, R121b.all));
         at end
            test_jwa_cxa4031__test_block__B118b___clean;
         end B118b;
         if E124b then

-- 139:       then

-- 140:          Report.Failed("Incorrect results from Procedure Append with " &
            report.report__failed (
              "Incorrect results from Procedure Append with unbounded string parameters - 3");
         end if;

-- 141:                        "unbounded string parameters - 3");

-- 142:       end if;

-- 143:

-- 144:
-- 145:       -- Procedure Append (Unbounded - String)

-- 146:

-- 147:       TC_Unb_String := JS.To_String_8("An Unbounded String and ");
         B127b : declare
            M134b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F132b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B127b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F132b);
               $system__secondary_stack__ss_release (M134b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B127b___clean;
         begin
            type test_jwa_cxa4031__test_block__B127b__A129b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B127b__A129b []
            R130b : test_jwa_cxa4031__test_block__B127b__A129b :=
              jwa__strings.jwa__strings__create__2 (
              "An Unbounded String and ")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F132b, R130b.all'address, 1);
            B133b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R130b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B133b;
         at end
            test_jwa_cxa4031__test_block__B127b___clean;
         end B127b;

-- 148:

-- 149:       JS.Append(Source => TC_Unb_String, New_Item => TC_String);
         jwa__strings.jwa__strings__append__2 (source => tc_unb_string,
           new_item => tc_string);
         E141b : boolean;

-- 150:

-- 151:       if TC_Unb_String /=
         B135b : declare
            M142b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F140b : system__finalization_root__finalizable_ptr := null;

-- 152:          JS.To_String_8("An Unbounded String and A Standard String")
            procedure test_jwa_cxa4031__test_block__B135b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F140b);
               $system__secondary_stack__ss_release (M142b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B135b___clean;
         begin
            type test_jwa_cxa4031__test_block__B135b__A137b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B135b__A137b []
            R138b : test_jwa_cxa4031__test_block__B135b__A137b :=
              jwa__strings.jwa__strings__create__2 (
              "An Unbounded String and A Standard String")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F140b, R138b.all'address, 1);
            E141b := not (jwa__strings__Oeq (tc_unb_string, R138b.all));
         at end
            test_jwa_cxa4031__test_block__B135b___clean;
         end B135b;
         if E141b then

-- 153:       then

-- 154:          Report.Failed("Incorrect results from Procedure Append with " &
            report.report__failed (

-- 155:                        "an unbounded string parameter and a string "   &
              "Incorrect results from Procedure Append with an unbounded string parameter and a string parameter - 1");
         end if;

-- 156:                        "parameter - 1");

-- 157:       end if;

-- 158:

-- 159:

-- 160:       TC_Unb_String := JS.To_String_8("An Unbounded String");
         B144b : declare
            M151b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F149b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B144b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F149b);
               $system__secondary_stack__ss_release (M151b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B144b___clean;
         begin
            type test_jwa_cxa4031__test_block__B144b__A146b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B144b__A146b []
            R147b : test_jwa_cxa4031__test_block__B144b__A146b :=
              jwa__strings.jwa__strings__create__2 ("An Unbounded String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F149b, R147b.all'address, 1);
            B150b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R147b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B150b;
         at end
            test_jwa_cxa4031__test_block__B144b___clean;
         end B144b;

-- 161:

-- 162:       JS.Append(TC_Unb_String, New_Item => Null_String);
         jwa__strings.jwa__strings__append__2 (tc_unb_string, new_item =>
           null_string);
         E158b : boolean;

-- 163:

-- 164:       if TC_Unb_String /=
         B152b : declare
            M159b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F157b : system__finalization_root__finalizable_ptr := null;

-- 165:          JS.To_String_8("An Unbounded String")
            procedure test_jwa_cxa4031__test_block__B152b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F157b);
               $system__secondary_stack__ss_release (M159b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B152b___clean;
         begin
            type test_jwa_cxa4031__test_block__B152b__A154b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B152b__A154b []
            R155b : test_jwa_cxa4031__test_block__B152b__A154b :=
              jwa__strings.jwa__strings__create__2 ("An Unbounded String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F157b, R155b.all'address, 1);
            E158b := not (jwa__strings__Oeq (tc_unb_string, R155b.all));
         at end
            test_jwa_cxa4031__test_block__B152b___clean;
         end B152b;
         if E158b then

-- 166:       then

-- 167:          Report.Failed("Incorrect results from Procedure Append with " &
            report.report__failed (

-- 168:                        "an unbounded string parameter and a string "   &
              "Incorrect results from Procedure Append with an unbounded string parameter and a string parameter - 2");
         end if;

-- 169:                        "parameter - 2");

-- 170:       end if;

-- 171:

-- 172:

-- 173:       TC_Unb_String := JS.Null_String_8;
         B161b : begin
            system__soft_links__abort_defer.all;
            jwa__strings___assign__2 (tc_unb_string, jwa__strings.
              jwa__strings__null_string_8);
         at end
            system__standard_library__abort_undefer_direct;
         end B161b;

-- 174:

-- 175:       JS.Append(TC_Unb_String, TC_String);
         jwa__strings.jwa__strings__append__2 (tc_unb_string, tc_string);
         E168b : boolean;

-- 176:

-- 177:       if TC_Unb_String /= JS.To_String_8("A Standard String") then
         B162b : declare
            M169b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F167b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B162b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F167b);
               $system__secondary_stack__ss_release (M169b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B162b___clean;
         begin
            type test_jwa_cxa4031__test_block__B162b__A164b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B162b__A164b []
            R165b : test_jwa_cxa4031__test_block__B162b__A164b :=
              jwa__strings.jwa__strings__create__2 ("A Standard String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F167b, R165b.all'address, 1);
            E168b := not (jwa__strings__Oeq (tc_unb_string, R165b.all));
         at end
            test_jwa_cxa4031__test_block__B162b___clean;
         end B162b;
         if E168b then

-- 178:          Report.Failed("Incorrect results from Procedure Append with " &
            report.report__failed (

-- 179:                        "an unbounded string parameter and a string "   &
              "Incorrect results from Procedure Append with an unbounded string parameter and a string parameter - 3");
         end if;

-- 180:                        "parameter - 3");

-- 181:       end if;

-- 182:

-- 183:
-- 184:       -- Procedure Append (Unbounded - Character)

-- 185:

-- 186:       TC_Unb_String := JS.To_String_8("Lower Case = ");
         B171b : declare
            M178b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F176b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B171b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F176b);
               $system__secondary_stack__ss_release (M178b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B171b___clean;
         begin
            type test_jwa_cxa4031__test_block__B171b__A173b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B171b__A173b []
            R174b : test_jwa_cxa4031__test_block__B171b__A173b :=
              jwa__strings.jwa__strings__create__2 ("Lower Case = ")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F176b, R174b.all'address, 1);
            B177b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R174b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B177b;
         at end
            test_jwa_cxa4031__test_block__B171b___clean;
         end B171b;

-- 187:

-- 188:       for i in LC_Characters'Range loop
         L_1 : for i in 'a' .. 'z' loop

-- 189:          JS.Append(Source => TC_Unb_String, New_Item => LC_Characters(i));
            jwa__strings.jwa__strings__append__3 (source =>
              tc_unb_string, new_item => i);

-- 190:       end loop;
         end loop L_1;
         E185b : boolean;

-- 191:

-- 192:       if TC_Unb_String /=
         B179b : declare
            M186b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F184b : system__finalization_root__finalizable_ptr := null;

-- 193:          JS.To_String_8("Lower Case = abcdefghijklmnopqrstuvwxyz")
            procedure test_jwa_cxa4031__test_block__B179b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F184b);
               $system__secondary_stack__ss_release (M186b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B179b___clean;
         begin
            type test_jwa_cxa4031__test_block__B179b__A181b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B179b__A181b []
            R182b : test_jwa_cxa4031__test_block__B179b__A181b :=
              jwa__strings.jwa__strings__create__2 (
              "Lower Case = abcdefghijklmnopqrstuvwxyz")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F184b, R182b.all'address, 1);
            E185b := not (jwa__strings__Oeq (tc_unb_string, R182b.all));
         at end
            test_jwa_cxa4031__test_block__B179b___clean;
         end B179b;
         if E185b then

-- 194:       then

-- 195:          Report.Failed("Incorrect results from Procedure Append with "  &
            report.report__failed (

-- 196:                        "an unbounded string parameter and a character " &
              "Incorrect results from Procedure Append with an unbounded string parameter and a character parameter - 1");
         end if;

-- 197:                        "parameter - 1");

-- 198:       end if;

-- 199:

-- 200:

-- 201:       TC_Unb_String := JS.Null_String_8;
         B188b : begin
            system__soft_links__abort_defer.all;
            jwa__strings___assign__2 (tc_unb_string, jwa__strings.
              jwa__strings__null_string_8);
         at end
            system__standard_library__abort_undefer_direct;
         end B188b;

-- 202:

-- 203:       JS.Append(TC_Unb_String, New_Item => 'a');
         jwa__strings.jwa__strings__append__3 (tc_unb_string, new_item =>
           'a');
         E195b : boolean;

-- 204:

-- 205:       if TC_Unb_String /= JS.To_String_8("a") then
         B189b : declare
            M196b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F194b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B189b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F194b);
               $system__secondary_stack__ss_release (M196b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B189b___clean;
         begin
            type test_jwa_cxa4031__test_block__B189b__A191b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B189b__A191b []
            R192b : test_jwa_cxa4031__test_block__B189b__A191b :=
              jwa__strings.jwa__strings__create__2 ("a")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F194b, R192b.all'address, 1);
            E195b := not (jwa__strings__Oeq (tc_unb_string, R192b.all));
         at end
            test_jwa_cxa4031__test_block__B189b___clean;
         end B189b;
         if E195b then

-- 206:          Report.Failed("Incorrect results from Procedure Append with "  &
            report.report__failed (

-- 207:                        "an unbounded string parameter and a character " &
              "Incorrect results from Procedure Append with an unbounded string parameter and a character parameter - 2");
         end if;

-- 208:                        "parameter - 2");

-- 209:       end if;

-- 210:

-- 211:
-- 212:       -- Function "="

-- 213:

-- 214:       TC_Unb_String := JS.To_String_8(TC_String);
         B198b : declare
            M204b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F202b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B198b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F202b);
               $system__secondary_stack__ss_release (M204b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B198b___clean;
         begin
            type test_jwa_cxa4031__test_block__B198b__A199b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B198b__A199b []
            R200b : test_jwa_cxa4031__test_block__B198b__A199b :=
              jwa__strings.jwa__strings__create__2 (tc_string)
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F202b, R200b.all'address, 1);
            B203b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R200b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B203b;
         at end
            test_jwa_cxa4031__test_block__B198b___clean;
         end B198b;
         R205b : constant boolean := (jwa__strings__Oeq__2 (
           tc_unb_string, tc_string));

-- 215:

-- 216:       if not (TC_Unb_String = TC_String)                 or  -- (Unb_Str, Str)
         [constraint_error when
           not (interfaces__unsigned_32!((R205b)) >=
             interfaces__unsigned_32!(false) and then
             interfaces__unsigned_32!((R205b)) <=
             interfaces__unsigned_32!(true))
           "invalid data"]
         R207b : constant boolean := jwa__strings.Oeq (

-- 217:          not JS."="("A Standard String", TC_Unb_String) or  -- (Str, Unb_Str)
           "A Standard String", tc_unb_string);
         [constraint_error when
           not (interfaces__unsigned_32!(R207b) >=
             interfaces__unsigned_32!(false) and then
             interfaces__unsigned_32!(R207b) <= interfaces__unsigned_32!
             (true))
           "invalid data"]
         E218b : boolean;
         B210b : declare
            M219b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F215b : system__finalization_root__finalizable_ptr := null;

-- 218:          not ((JS.Null_String_8 = "") and           -- (Unb_Str, Str)

-- 219:               ("Test String" =                               -- (Str, Unb_Str)

-- 220:                JS.To_String_8("Test String")))
            procedure test_jwa_cxa4031__test_block__B210b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F215b);
               $system__secondary_stack__ss_release (M219b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B210b___clean;
         begin
            type test_jwa_cxa4031__test_block__B210b__A212b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B210b__A212b []
            R213b : test_jwa_cxa4031__test_block__B210b__A212b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F215b, R213b.all'address, 1);
            R216b : constant boolean := (jwa__strings__Oeq__2 (
              jwa__strings.jwa__strings__null_string_8, ""));
            [constraint_error when
              not (interfaces__unsigned_32!((R216b)) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!((R216b)) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            R217b : constant boolean := (jwa__strings__Oeq__3 (
              "Test String", R213b.all));
            [constraint_error when
              not (interfaces__unsigned_32!((R217b)) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!((R217b)) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            E218b := not (R205b) or not R207b or not ((R216b) and (
              R217b));
         at end
            test_jwa_cxa4031__test_block__B210b___clean;
         end B210b;
         if E218b then

-- 221:       then

-- 222:          Report.Failed("Incorrect results from function ""="" with " &
            report.report__failed (
              "Incorrect results from function ""="" with string - unbounded string parameter combinations");
         end if;
         E254b : boolean;

-- 223:                        "string - unbounded string parameter combinations");

-- 224:       end if;

-- 225:

-- 226:
-- 227:       -- Function "<"

-- 228:

-- 229:       if not ("Extra Space" < JS.To_String_8("Extra Space ") and

-- 230:               JS.To_String_8("tess") < "test"                and

-- 231:               JS.To_String_8("best") < "test")                or

-- 232:          JS.Null_String_8            < Null_String            or

-- 233:          " leading blank"  < JS.To_String_8(" leading blank") or
         B222b : declare
            M255b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F227b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B222b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F227b);
               $system__secondary_stack__ss_release (M255b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B222b___clean;
         begin
            type test_jwa_cxa4031__test_block__B222b__A224b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B222b__A224b []
            R225b : test_jwa_cxa4031__test_block__B222b__A224b :=
              jwa__strings.jwa__strings__create__2 ("Extra Space ")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F227b, R225b.all'address, 1);
            type test_jwa_cxa4031__test_block__B222b__A229b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B222b__A229b []
            R230b : test_jwa_cxa4031__test_block__B222b__A229b :=
              jwa__strings.jwa__strings__create__2 ("tess")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F227b, R230b.all'address, 1);
            R233b : constant boolean := jwa__strings__Olt__3 (
              "Extra Space", R225b.all);
            [constraint_error when
              not (interfaces__unsigned_32!(R233b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R233b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            R234b : constant boolean := jwa__strings__Olt__2 (R230b.all,
              "test");
            [constraint_error when
              not (interfaces__unsigned_32!(R234b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R234b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            type test_jwa_cxa4031__test_block__B222b__A236b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B222b__A236b []
            R237b : test_jwa_cxa4031__test_block__B222b__A236b :=
              jwa__strings.jwa__strings__create__2 ("best")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F227b, R237b.all'address, 1);
            R240b : constant boolean := jwa__strings__Olt__2 (R237b.all,
              "test");
            [constraint_error when
              not (interfaces__unsigned_32!(R240b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R240b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            R241b : constant boolean := jwa__strings__Olt__2 (
              jwa__strings.jwa__strings__null_string_8, null_string);
            [constraint_error when
              not (interfaces__unsigned_32!(R241b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R241b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            type test_jwa_cxa4031__test_block__B222b__A244b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B222b__A244b []
            R245b : test_jwa_cxa4031__test_block__B222b__A244b :=
              jwa__strings.jwa__strings__create__2 (" leading blank")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F227b, R245b.all'address, 1);
            R247b : constant boolean := jwa__strings__Olt__3 (
              " leading blank", R245b.all);
            [constraint_error when
              not (interfaces__unsigned_32!(R247b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R247b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]

-- 234:          "ending blank "   < JS.To_String_8("ending blank ")
            type test_jwa_cxa4031__test_block__B222b__A250b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B222b__A250b []
            R251b : test_jwa_cxa4031__test_block__B222b__A250b :=
              jwa__strings.jwa__strings__create__2 ("ending blank ")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F227b, R251b.all'address, 1);
            R253b : constant boolean := jwa__strings__Olt__3 (
              "ending blank ", R251b.all);
            [constraint_error when
              not (interfaces__unsigned_32!(R253b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R253b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            E254b := not (R233b and R234b and R240b) or R241b or R247b or
              R253b;
         at end
            test_jwa_cxa4031__test_block__B222b___clean;
         end B222b;
         if E254b then

-- 235:       then

-- 236:          Report.Failed("Incorrect results from function ""<"" with " &
            report.report__failed (
              "Incorrect results from function ""<"" with string - unbounded string parameter combinations");
         end if;

-- 237:                        "string - unbounded string parameter combinations");

-- 238:       end if;

-- 239:

-- 240:
-- 241:       -- Function "<="

-- 242:

-- 243:       TC_Unb_String := JS.To_String_8("Sample string");
         B257b : declare
            M264b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F262b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B257b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F262b);
               $system__secondary_stack__ss_release (M264b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B257b___clean;
         begin
            type test_jwa_cxa4031__test_block__B257b__A259b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B257b__A259b []
            R260b : test_jwa_cxa4031__test_block__B257b__A259b :=
              jwa__strings.jwa__strings__create__2 ("Sample string")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F262b, R260b.all'address, 1);
            B263b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R260b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B263b;
         at end
            test_jwa_cxa4031__test_block__B257b___clean;
         end B257b;
         R267b : constant boolean := jwa__strings__Ole__2 (
           tc_unb_string, "Sample strin");

-- 244:

-- 245:       if TC_Unb_String                 <= "Sample strin" or  -- (Unb_Str, Str)
         [constraint_error when
           not (interfaces__unsigned_32!(R267b) >=
             interfaces__unsigned_32!(false) and then
             interfaces__unsigned_32!(R267b) <= interfaces__unsigned_32!
             (true))
           "invalid data"]
         R268b : constant boolean := jwa__strings__Ole__3 (

-- 246:          "sample string"               <= TC_Unb_String  or  -- (Str, Unb_Str)
           "sample string", tc_unb_string);
         [constraint_error when
           not (interfaces__unsigned_32!(R268b) >=
             interfaces__unsigned_32!(false) and then
             interfaces__unsigned_32!(R268b) <= interfaces__unsigned_32!
             (true))
           "invalid data"]
         R270b : constant boolean := (jwa__strings__Ole__2 (
           jwa__strings.jwa__strings__null_string_8, ""));

-- 247:          not(JS.Null_String_8 <= "")            or  -- (Unb_Str, Str)
         [constraint_error when
           not (interfaces__unsigned_32!((R270b)) >=
             interfaces__unsigned_32!(false) and then
             interfaces__unsigned_32!((R270b)) <=
             interfaces__unsigned_32!(true))
           "invalid data"]
         R272b : constant boolean := (jwa__strings__Ole__3 (

-- 248:          not("Sample string"           <= TC_Unb_String)     -- (Str, Unb_Str)
           "Sample string", tc_unb_string));
         [constraint_error when
           not (interfaces__unsigned_32!((R272b)) >=
             interfaces__unsigned_32!(false) and then
             interfaces__unsigned_32!((R272b)) <=
             interfaces__unsigned_32!(true))
           "invalid data"]
         if R267b or R268b or not (R270b) or not (R272b) then

-- 249:       then

-- 250:          Report.Failed("Incorrect results from function ""<="" with " &
            report.report__failed (
              "Incorrect results from function ""<="" with string - unbounded string parameter combinations");
         end if;

-- 251:                        "string - unbounded string parameter combinations");

-- 252:       end if;

-- 253:

-- 254:
-- 255:       -- Function ">"

-- 256:

-- 257:       TC_Unb_String := JS.To_String_8("A MUCH LONGER STRING");
         B274b : declare
            M281b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F279b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B274b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F279b);
               $system__secondary_stack__ss_release (M281b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B274b___clean;
         begin
            type test_jwa_cxa4031__test_block__B274b__A276b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B274b__A276b []
            R277b : test_jwa_cxa4031__test_block__B274b__A276b :=
              jwa__strings.jwa__strings__create__2 (
              "A MUCH LONGER STRING")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F279b, R277b.all'address, 1);
            B280b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R277b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B280b;
         at end
            test_jwa_cxa4031__test_block__B274b___clean;
         end B274b;
         E298b : boolean;

-- 258:

-- 259:       if not ("A much longer string" > TC_Unb_String                  and

-- 260:               JS.To_String_8(TC_String) > "A Standard Strin" and

-- 261:               "abcdefgh" > JS.To_String_8("ABCDEFGH"))        or
         B283b : declare
            M299b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F287b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B283b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F287b);
               $system__secondary_stack__ss_release (M299b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B283b___clean;
         begin
            type test_jwa_cxa4031__test_block__B283b__A284b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B283b__A284b []
            R285b : test_jwa_cxa4031__test_block__B283b__A284b :=
              jwa__strings.jwa__strings__create__2 (tc_string)
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F287b, R285b.all'address, 1);
            R289b : constant boolean := jwa__strings__Ogt__3 (
              "A much longer string", tc_unb_string);
            [constraint_error when
              not (interfaces__unsigned_32!(R289b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R289b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            R290b : constant boolean := jwa__strings__Ogt__2 (R285b.all,
              "A Standard Strin");
            [constraint_error when
              not (interfaces__unsigned_32!(R290b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R290b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            type test_jwa_cxa4031__test_block__B283b__A293b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B283b__A293b []
            R294b : test_jwa_cxa4031__test_block__B283b__A293b :=
              jwa__strings.jwa__strings__create__2 ("ABCDEFGH")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F287b, R294b.all'address, 1);
            R296b : constant boolean := jwa__strings__Ogt__3 ("abcdefgh",
              R294b.all);
            [constraint_error when
              not (interfaces__unsigned_32!(R296b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R296b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            R297b : constant boolean := jwa__strings__Ogt__2 (
              jwa__strings.jwa__strings__null_string_8, null_string);

-- 262:          JS.Null_String_8 > Null_String
            [constraint_error when
              not (interfaces__unsigned_32!(R297b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R297b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            E298b := not (R289b and R290b and R296b) or R297b;
         at end
            test_jwa_cxa4031__test_block__B283b___clean;
         end B283b;
         if E298b then

-- 263:       then

-- 264:          Report.Failed("Incorrect results from function "">"" with " &
            report.report__failed (
              "Incorrect results from function "">"" with string - unbounded string parameter combinations");
         end if;

-- 265:                        "string - unbounded string parameter combinations");

-- 266:       end if;

-- 267:

-- 268:
-- 269:       -- Function ">="

-- 270:

-- 271:       TC_Unb_String := JS.To_String_8(TC_String);
         B301b : declare
            M307b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F305b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4031__test_block__B301b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F305b);
               $system__secondary_stack__ss_release (M307b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B301b___clean;
         begin
            type test_jwa_cxa4031__test_block__B301b__A302b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B301b__A302b []
            R303b : test_jwa_cxa4031__test_block__B301b__A302b :=
              jwa__strings.jwa__strings__create__2 (tc_string)
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F305b, R303b.all'address, 1);
            B306b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R303b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B306b;
         at end
            test_jwa_cxa4031__test_block__B301b___clean;
         end B301b;
         R308b : constant boolean := jwa__strings__Oge__2 (
           tc_unb_string, tc_string);

-- 272:

-- 273:       if not (TC_Unb_String >= TC_String                       and
         [constraint_error when
           not (interfaces__unsigned_32!(R308b) >=
             interfaces__unsigned_32!(false) and then
             interfaces__unsigned_32!(R308b) <= interfaces__unsigned_32!
             (true))
           "invalid data"]
         R309b : constant boolean := jwa__strings__Oge__3 (null_string,
           jwa__strings.jwa__strings__null_string_8);

-- 274:               Null_String   >= JS.Null_String_8       and
         [constraint_error when
           not (interfaces__unsigned_32!(R309b) >=
             interfaces__unsigned_32!(false) and then
             interfaces__unsigned_32!(R309b) <= interfaces__unsigned_32!
             (true))
           "invalid data"]
         E324b : boolean;
         B311b : declare
            M325b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F316b : system__finalization_root__finalizable_ptr := null;

-- 275:               "test"        >= JS.To_String_8("tess") and
            procedure test_jwa_cxa4031__test_block__B311b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F316b);
               $system__secondary_stack__ss_release (M325b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4031__test_block__B311b___clean;
         begin
            type test_jwa_cxa4031__test_block__B311b__A313b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B311b__A313b []
            R314b : test_jwa_cxa4031__test_block__B311b__A313b :=
              jwa__strings.jwa__strings__create__2 ("tess")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F316b, R314b.all'address, 1);
            R317b : constant boolean := jwa__strings__Oge__3 ("test",
              R314b.all);
            [constraint_error when
              not (interfaces__unsigned_32!(R317b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R317b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]

-- 276:               JS.To_String_8("Programming") >= "PROGRAMMING")
            type test_jwa_cxa4031__test_block__B311b__A319b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4031__test_block__B311b__A319b []
            R320b : test_jwa_cxa4031__test_block__B311b__A319b :=
              jwa__strings.jwa__strings__create__2 ("Programming")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F316b, R320b.all'address, 1);
            R323b : constant boolean := jwa__strings__Oge__2 (R320b.all,
              "PROGRAMMING");
            [constraint_error when
              not (interfaces__unsigned_32!(R323b) >=
                interfaces__unsigned_32!(false) and then
                interfaces__unsigned_32!(R323b) <=
                interfaces__unsigned_32!(true))
              "invalid data"]
            E324b := not (R308b and R309b and R317b and R323b);
         at end
            test_jwa_cxa4031__test_block__B311b___clean;
         end B311b;
         if E324b then

-- 277:       then

-- 278:          Report.Failed("Incorrect results from function "">="" with " &
            report.report__failed (
              "Incorrect results from function "">="" with string - unbounded string parameter combinations");
         end if;
      exception

-- 279:                        "string - unbounded string parameter combinations");

-- 280:       end if;

-- 281:

-- 282:

-- 283:    exception

-- 284:       when The_Error : others =>
         when others =>
            system__soft_links__abort_undefer.all;
            B337b : declare
               the_error : ada__exceptions__exception_occurrence;
            begin
               $ada__exceptions__save_occurrence (the_error,
                 system__soft_links__get_current_excep.all.all);

-- 285:          Report.Failed ("The following exception was raised in the " &
               B328b : declare
                  M336b : system__secondary_stack__mark_id :=
                    $system__secondary_stack__ss_mark;

-- 286:                         "Test_Block: " & Exception_Name(The_Error));
                  procedure
                    test_jwa_cxa4031__test_block__E327b__B328b___clean is
                  begin
                     $system__secondary_stack__ss_release (M336b);
                     return;

-- 287:    end Test_Block;
                  end
                    test_jwa_cxa4031__test_block__E327b__B328b___clean;
               begin
                  type
                    test_jwa_cxa4031__test_block__E327b__B328b__A330b
                    is access all string;
                  freeze
                    test_jwa_cxa4031__test_block__E327b__B328b__A330b []
                  R331b :
                    test_jwa_cxa4031__test_block__E327b__B328b__A330b :=
                    ada__exceptions__exception_name__2 (the_error)
                    'reference;
                  L333b : constant integer := R331b.all'length;
                  L334b : constant integer := 54 + L333b;
                  subtype
                    test_jwa_cxa4031__test_block__E327b__B328b__TS335bS is
                    string (1 .. 1 + (L334b - 1));
                  S335b : string (1 .. 1 + (L334b - 1));
                  $system__concat_2__str_concat_2 (S335b,
                    "The following exception was raised in the Test_Block: ",
                    R331b.all);
                  report.report__failed (S335b);
               at end
                  test_jwa_cxa4031__test_block__E327b__B328b___clean;
               end B328b;
            end B337b;
      end;
   at end
      test_jwa_cxa4031__test_block___clean;
   end test_block;

-- 288:

-- 289:    Report.Result;
   report.report__result;

-- 290:

-- 291: end Test_Jwa_CXA4031;
   return;
end test_jwa_cxa4031;
