
-- 1: -- CXA4032.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 procedures defined in package Ada.Strings.Unbounded
-- 28: --      are available, and that they produce correct results. Specifically,
-- 29: --      check the procedures Replace_Slice, Insert, Overwrite, Delete,
-- 30: --      Trim (2 versions), Head, and Tail.
-- 31: --
-- 32: -- TEST DESCRIPTION:
-- 33: --      This test demonstrates the uses of many of the procedures defined
-- 34: --      in package Ada.Strings.Unbounded for use with unbounded strings.
-- 35: --      The test simulates how unbounded strings could be processed in a
-- 36: --      user environment, using the procedures provided in this package.
-- 37: --
-- 38: --      This test, when taken in conjunction with tests CXA4010, CXA4011,
-- 39: --      CXA4030, and CXA4031 will constitute a test of all the functionality
-- 40: --      contained in package Ada.Strings.Unbounded.  This test uses a variety
-- 41: --      of the procedures defined in the unbounded string package in ways
-- 42: --      typical of common usage.
-- 43: --
-- 44: --
-- 45: -- CHANGE HISTORY:
-- 46: --      02 Mar 95   SAIC    Initial prerelease version.
-- 47: --
-- 48: --!

-- 49:

-- 50: with Report;

-- 51: with Ada.Strings;

-- 52: with Ada.Strings.Maps;

-- 53: with Ada.Strings.Maps.Constants;

-- 54: with Jwa.Strings;

-- 55: with Ada.Exceptions; use Ada.Exceptions;
with ada;
with jwa;
with ada;
with ada.ada__strings;
with ada.ada__strings.ada__strings__maps;
with ada;
with ada.ada__strings;
with ada;
with report;
with ada.ada__strings;
with ada.ada__strings.ada__strings__maps;
with ada.ada__strings.ada__strings__maps.ada__strings__maps__constants;
with jwa.jwa__strings;
with ada.ada__exceptions;
use ada.ada__exceptions;
with ada.ada__tags;
with system.system__finalization_root;
with system.system__finalization_implementation;
with system;
with ada.ada__finalization.ada__finalization__list_controller;
with interfaces;
with system.system__soft_links;
with system.system__standard_library;
with system.system__secondary_stack;
with ada.ada__exceptions;
with system.system__concat_2;

-- 56:

-- 57: procedure Test_Jwa_CXA4032 is
procedure test_jwa_cxa4032 is
   test_block : label

-- 58: begin
begin

-- 59:

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

-- 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
      M628b : system__secondary_stack__mark_id :=
        $system__secondary_stack__ss_mark;
      F11b : system__finalization_root__finalizable_ptr := null;
      procedure test_jwa_cxa4032__test_block___clean is
      begin
         system__soft_links__abort_defer.all;
         $system__finalization_implementation__finalize_list (F11b);
         $system__secondary_stack__ss_release (M628b);
         system__soft_links__abort_undefer.all;
         return;
      end test_jwa_cxa4032__test_block___clean;
   begin
      L12b : ada__finalization__list_controller__simple_list_controller;

-- 66:

-- 67:       package JS renames Jwa.Strings;
      $ada__finalization__list_controller__simple_list_controllerIP (
        L12b, P6s => true);
      $ada__finalization__initialize__2 (L12b);
      $system__finalization_implementation__attach_to_final_list (F11b,
        system__finalization_root__finalizable?(L12b), 1);
      F10b___XR_L12b___XEXRf : _renaming_type;
      F10b : system__finalization_root__finalizable_ptr renames L12b.f;
      js___XRP_jwa__strings___XE : _renaming_type;
      package js renames jwa.jwa__strings;

-- 68:       use JS;
      use js;

-- 69:       use Ada.Strings;
      use ada.ada__strings;

-- 70:

-- 71:       TC_Null_String : constant String := "";
      subtype test_jwa_cxa4032__test_block__Ttc_null_stringS is string
        (1 .. 0);
      tc_null_string : constant string (1 .. 0) := "";

-- 72:       TC_String_5    : String(1..5)    := "ABCDE";
      subtype test_jwa_cxa4032__test_block__Ttc_string_5S is string (
        1 .. 5);
      null;
      null;
      tc_string_5 : string (1 .. 5) := "ABCDE";

-- 73:

-- 74:       TC_Unb_String  : JS.String_8 :=

-- 75:                          JS.To_String_8("Test String");
      type test_jwa_cxa4032__test_block__A7b is access all
        jwa__strings__string_8;
      freeze test_jwa_cxa4032__test_block__A7b []
      R8b : test_jwa_cxa4032__test_block__A7b := jwa__strings.
        jwa__strings__create__2 ("Test String")'reference;
      $system__finalization_implementation__deep_tag_attach (F10b, R8b.all'
        address, 1);
      tc_unb_string : jwa__strings.jwa__strings__string_8 := R8b.all;
      jwa__strings__adjust__2 (tc_unb_string);
      $system__finalization_implementation__attach_to_final_list (F11b,
        system__finalization_root__finalizable?(tc_unb_string), 1);
      $ada__finalization__list_controller__finalize (L12b);
      tc_unb_string._tag := jwa__strings__string_8P;
      B_1 : label
      B_2 : label
      B_3 : label
      begin

-- 76:

-- 77:    begin

-- 78:
-- 79:       -- Procedure Replace_Slice

-- 80:

-- 81:       begin                                           -- Low > Source'Last+1
         B_1 : begin
            C13b : natural;

-- 82:          JS.Replace_Slice(Source => TC_Unb_String,

-- 83:                            Low    => JS.Length(TC_Unb_String) + 2,
            B15b : declare
               L14b : label
            begin
               if tc_unb_string.ptr = null then
                  C13b := 0;
                  goto L14b;
               else
                  R17b : jwa__strings__string_8_internal_ptr renames
                    tc_unb_string.ptr;
                  [constraint_error when
                    R17b = null
                    "access check failed"]
                  R18b : constant natural := R17b.all.capacity;
                  subtype test_jwa_cxa4032__test_block__B_1__B15b__S16b is
                    jwa__strings__string_8_data (R18b);
                  R20b : jwa__strings__string_8_internal_ptr renames
                    tc_unb_string.ptr;
                  [constraint_error when
                    R20b = null
                    "access check failed"]
                  [constraint_error when
                    not (interfaces__unsigned_32!(R20b.all.data.length) <=
                      16#7FFF_FFFF#)
                    "invalid data"]
                  C13b := R20b.all.data.length;
                  goto L14b;
               end if;
               <<L14b>>
            end B15b;
            C21b : natural;

-- 84:                            High   => JS.Length(TC_Unb_String),
            B23b : declare
               L22b : label
            begin
               if tc_unb_string.ptr = null then
                  C21b := 0;
                  goto L22b;
               else
                  R25b : jwa__strings__string_8_internal_ptr renames
                    tc_unb_string.ptr;
                  [constraint_error when
                    R25b = null
                    "access check failed"]
                  R26b : constant natural := R25b.all.capacity;
                  subtype test_jwa_cxa4032__test_block__B_1__B23b__S24b is
                    jwa__strings__string_8_data (R26b);
                  R28b : jwa__strings__string_8_internal_ptr renames
                    tc_unb_string.ptr;
                  [constraint_error when
                    R28b = null
                    "access check failed"]
                  [constraint_error when
                    not (interfaces__unsigned_32!(R28b.all.data.length) <=
                      16#7FFF_FFFF#)
                    "invalid data"]
                  C21b := R28b.all.data.length;
                  goto L22b;
               end if;
               <<L22b>>
            end B23b;
            jwa__strings.jwa__strings__replace_slice__2 (source =>
              tc_unb_string, low => C13b {+} 2, high => C21b, by =>
              tc_string_5);

-- 85:                            By     => TC_String_5);

-- 86:          Report.Failed("Index_Error not raised by Replace_Slice when Low " &
            report.report__failed (
              "Index_Error not raised by Replace_Slice when Low > Source'Last+1");
         exception

-- 87:                        "> Source'Last+1");

-- 88:       exception

-- 89:          when Index_Error => null;  -- OK, expected exception.
            when ada__strings__index_error =>
               system__soft_links__abort_undefer.all;
               null;

-- 90:          when others      =>
            when others =>
               system__soft_links__abort_undefer.all;

-- 91:             Report.Failed("Unexpected exception raised by Replace_Slice" &
               report.report__failed (
                 "Unexpected exception raised by Replace_Slicewhen Low > Source'Last+1");
         end B_1;

-- 92:                           "when Low > Source'Last+1");

-- 93:       end;

-- 94:
-- 95:       -- High >= Low

-- 96:

-- 97:       TC_Unb_String := JS.To_String_8("Test String");
         B31b : declare
            M38b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F36b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B31b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F36b);
               $system__secondary_stack__ss_release (M38b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B31b___clean;
         begin
            type test_jwa_cxa4032__test_block__B31b__A33b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B31b__A33b []
            R34b : test_jwa_cxa4032__test_block__B31b__A33b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (F36b,
              R34b.all'address, 1);
            B37b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R34b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B37b;
         at end
            test_jwa_cxa4032__test_block__B31b___clean;
         end B31b;

-- 98:

-- 99:       JS.Replace_Slice(TC_Unb_String, 5, 5, TC_String_5);
         jwa__strings.jwa__strings__replace_slice__2 (tc_unb_string,
           5, 5, tc_string_5);
         E45b : boolean;

-- 100:

-- 101:       if TC_Unb_String /= JS.To_String_8("TestABCDEString") then
         B39b : declare
            M46b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F44b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B39b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F44b);
               $system__secondary_stack__ss_release (M46b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B39b___clean;
         begin
            type test_jwa_cxa4032__test_block__B39b__A41b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B39b__A41b []
            R42b : test_jwa_cxa4032__test_block__B39b__A41b :=
              jwa__strings.jwa__strings__create__2 ("TestABCDEString")
              'reference;
            $system__finalization_implementation__deep_tag_attach (F44b,
              R42b.all'address, 1);
            E45b := not (jwa__strings__Oeq (tc_unb_string, R42b.all));
         at end
            test_jwa_cxa4032__test_block__B39b___clean;
         end B39b;
         if E45b then

-- 102:          Report.Failed("Incorrect results from Replace_Slice - 1");
            report.report__failed (
              "Incorrect results from Replace_Slice - 1");

-- 103:       end if;
         end if;

-- 104:

-- 105:       JS.Replace_Slice(TC_Unb_String, 1, 4, TC_String_5);
         jwa__strings.jwa__strings__replace_slice__2 (tc_unb_string,
           1, 4, tc_string_5);
         E54b : boolean;

-- 106:

-- 107:       if TC_Unb_String /= JS.To_String_8("ABCDEABCDEString") then
         B48b : declare
            M55b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F53b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B48b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F53b);
               $system__secondary_stack__ss_release (M55b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B48b___clean;
         begin
            type test_jwa_cxa4032__test_block__B48b__A50b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B48b__A50b []
            R51b : test_jwa_cxa4032__test_block__B48b__A50b :=
              jwa__strings.jwa__strings__create__2 ("ABCDEABCDEString")
              'reference;
            $system__finalization_implementation__deep_tag_attach (F53b,
              R51b.all'address, 1);
            E54b := not (jwa__strings__Oeq (tc_unb_string, R51b.all));
         at end
            test_jwa_cxa4032__test_block__B48b___clean;
         end B48b;
         if E54b then

-- 108:          Report.Failed("Incorrect results from Replace_Slice - 2");
            report.report__failed (
              "Incorrect results from Replace_Slice - 2");

-- 109:       end if;
         end if;
         C57b : natural;

-- 110:

-- 111:       JS.Replace_Slice(TC_Unb_String,

-- 112:                         11,

-- 113:                         JS.Length(TC_Unb_String),
         B59b : declare
            L58b : label
         begin
            if tc_unb_string.ptr = null then
               C57b := 0;
               goto L58b;
            else
               R61b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R61b = null
                 "access check failed"]
               R62b : constant natural := R61b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B59b__S60b is
                 jwa__strings__string_8_data (R62b);
               R64b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R64b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R64b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C57b := R64b.all.data.length;
               goto L58b;
            end if;
            <<L58b>>
         end B59b;
         jwa__strings.jwa__strings__replace_slice__2 (tc_unb_string,
           11, C57b, tc_null_string);
         E71b : boolean;

-- 114:                         TC_Null_String);

-- 115:

-- 116:       if TC_Unb_String /= JS.To_String_8("ABCDEABCDE") then
         B65b : declare
            M72b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F70b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B65b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F70b);
               $system__secondary_stack__ss_release (M72b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B65b___clean;
         begin
            type test_jwa_cxa4032__test_block__B65b__A67b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B65b__A67b []
            R68b : test_jwa_cxa4032__test_block__B65b__A67b :=
              jwa__strings.jwa__strings__create__2 ("ABCDEABCDE")
              'reference;
            $system__finalization_implementation__deep_tag_attach (F70b,
              R68b.all'address, 1);
            E71b := not (jwa__strings__Oeq (tc_unb_string, R68b.all));
         at end
            test_jwa_cxa4032__test_block__B65b___clean;
         end B65b;
         if E71b then

-- 117:          Report.Failed("Incorrect results from Replace_Slice - 3");
            report.report__failed (
              "Incorrect results from Replace_Slice - 3");

-- 118:       end if;
         end if;

-- 119:
-- 120:       -- High < Low

-- 121:

-- 122:       JS.Replace_Slice(TC_Unb_String, Low => 4, High => 1, By => "xxx");
         jwa__strings.jwa__strings__replace_slice__2 (tc_unb_string,
           low => 4, high => 1, by => "xxx");
         E81b : boolean;

-- 123:

-- 124:       if TC_Unb_String /= JS.To_String_8("ABCxxxDEABCDE") then
         B75b : declare
            M82b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F80b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__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_cxa4032__test_block__B75b___clean;
         begin
            type test_jwa_cxa4032__test_block__B75b__A77b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B75b__A77b []
            R78b : test_jwa_cxa4032__test_block__B75b__A77b :=
              jwa__strings.jwa__strings__create__2 ("ABCxxxDEABCDE")
              'reference;
            $system__finalization_implementation__deep_tag_attach (F80b,
              R78b.all'address, 1);
            E81b := not (jwa__strings__Oeq (tc_unb_string, R78b.all));
         at end
            test_jwa_cxa4032__test_block__B75b___clean;
         end B75b;
         if E81b then

-- 125:          Report.Failed("Incorrect results from Replace_Slice - 4");
            report.report__failed (
              "Incorrect results from Replace_Slice - 4");

-- 126:       end if;
         end if;

-- 127:

-- 128:       JS.Replace_Slice(TC_Unb_String, Low => 1, High => 0, By => "yyy");
         jwa__strings.jwa__strings__replace_slice__2 (tc_unb_string,
           low => 1, high => 0, by => "yyy");
         E91b : boolean;

-- 129:

-- 130:       if TC_Unb_String /= JS.To_String_8("yyyABCxxxDEABCDE") then
         B85b : declare
            M92b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F90b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B85b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F90b);
               $system__secondary_stack__ss_release (M92b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B85b___clean;
         begin
            type test_jwa_cxa4032__test_block__B85b__A87b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B85b__A87b []
            R88b : test_jwa_cxa4032__test_block__B85b__A87b :=
              jwa__strings.jwa__strings__create__2 ("yyyABCxxxDEABCDE")
              'reference;
            $system__finalization_implementation__deep_tag_attach (F90b,
              R88b.all'address, 1);
            E91b := not (jwa__strings__Oeq (tc_unb_string, R88b.all));
         at end
            test_jwa_cxa4032__test_block__B85b___clean;
         end B85b;
         if E91b then

-- 131:          Report.Failed("Incorrect results from Replace_Slice - 5");
            report.report__failed (
              "Incorrect results from Replace_Slice - 5");

-- 132:       end if;
         end if;
         C94b : natural;

-- 133:

-- 134:       JS.Replace_Slice(TC_Unb_String,

-- 135:                         JS.Length(TC_Unb_String) + 1,
         B96b : declare
            L95b : label
         begin
            if tc_unb_string.ptr = null then
               C94b := 0;
               goto L95b;
            else
               R98b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R98b = null
                 "access check failed"]
               R99b : constant natural := R98b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B96b__S97b is
                 jwa__strings__string_8_data (R99b);
               R101b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R101b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R101b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C94b := R101b.all.data.length;
               goto L95b;
            end if;
            <<L95b>>
         end B96b;
         C102b : natural;

-- 136:                         JS.Length(TC_Unb_String),
         B104b : declare
            L103b : label
         begin
            if tc_unb_string.ptr = null then
               C102b := 0;
               goto L103b;
            else
               R106b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R106b = null
                 "access check failed"]
               R107b : constant natural := R106b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B104b__S105b is
                 jwa__strings__string_8_data (R107b);
               R109b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R109b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R109b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C102b := R109b.all.data.length;
               goto L103b;
            end if;
            <<L103b>>
         end B104b;
         jwa__strings.jwa__strings__replace_slice__2 (tc_unb_string,
           C94b {+} 1, C102b, by => "zzz");
         E117b : boolean;

-- 137:                         By => "zzz");

-- 138:

-- 139:       if TC_Unb_String /= JS.To_String_8("yyyABCxxxDEABCDEzzz") then
         B111b : declare
            M118b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F116b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B111b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F116b);
               $system__secondary_stack__ss_release (M118b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B111b___clean;
         begin
            type test_jwa_cxa4032__test_block__B111b__A113b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B111b__A113b []
            R114b : test_jwa_cxa4032__test_block__B111b__A113b :=
              jwa__strings.jwa__strings__create__2 ("yyyABCxxxDEABCDEzzz")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F116b, R114b.all'address, 1);
            E117b := not (jwa__strings__Oeq (tc_unb_string, R114b.all));
         at end
            test_jwa_cxa4032__test_block__B111b___clean;
         end B111b;
         if E117b then

-- 140:          Report.Failed("Incorrect results from Replace_Slice - 6");
            report.report__failed (
              "Incorrect results from Replace_Slice - 6");

-- 141:       end if;
         end if;

-- 142:

-- 143:
-- 144:       -- Procedure Insert

-- 145:

-- 146:       TC_Unb_String := JS.To_String_8("Test String");
         B120b : declare
            M127b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F125b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B120b___clean is

-- 147:

-- 148:       begin                  -- Before not in Source'First..Source'Last + 1
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F125b);
               $system__secondary_stack__ss_release (M127b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B120b___clean;
         begin
            type test_jwa_cxa4032__test_block__B120b__A122b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B120b__A122b []
            R123b : test_jwa_cxa4032__test_block__B120b__A122b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F125b, R123b.all'address, 1);
            B126b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R123b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B126b;
         at end
            test_jwa_cxa4032__test_block__B120b___clean;
         end B120b;
         B_2 : begin
            C128b : natural;

-- 149:          JS.Insert(Source   => TC_Unb_String,

-- 150:                     Before   => JS.Length(TC_Unb_String) + 2,
            B130b : declare
               L129b : label
            begin
               if tc_unb_string.ptr = null then
                  C128b := 0;
                  goto L129b;
               else
                  R132b : jwa__strings__string_8_internal_ptr renames
                    tc_unb_string.ptr;
                  [constraint_error when
                    R132b = null
                    "access check failed"]
                  R133b : constant natural := R132b.all.capacity;
                  subtype
                    test_jwa_cxa4032__test_block__B_2__B130b__S131b is
                    jwa__strings__string_8_data (R133b);
                  R135b : jwa__strings__string_8_internal_ptr renames
                    tc_unb_string.ptr;
                  [constraint_error when
                    R135b = null
                    "access check failed"]
                  [constraint_error when
                    not (interfaces__unsigned_32!(R135b.all.data.length) <=
                      16#7FFF_FFFF#)
                    "invalid data"]
                  C128b := R135b.all.data.length;
                  goto L129b;
               end if;
               <<L129b>>
            end B130b;
            jwa__strings.jwa__strings__insert__2 (source =>
              tc_unb_string, before => C128b {+} 2, new_item =>
              tc_string_5);

-- 151:                     New_Item => TC_String_5);

-- 152:          Report.Failed("Index_Error not raised by Insert when Before " &
            report.report__failed (
              "Index_Error not raised by Insert when Before not in the range Source'First..Source'Last+1");
         exception

-- 153:                        "not in the range Source'First..Source'Last+1");

-- 154:       exception

-- 155:          when Index_Error => null;  -- OK, expected exception.
            when ada__strings__index_error =>
               system__soft_links__abort_undefer.all;
               null;

-- 156:          when others      =>
            when others =>
               system__soft_links__abort_undefer.all;

-- 157:             Report.Failed
               report.report__failed (

-- 158:               ("Unexpected exception raised by Insert when Before not in " &
                 "Unexpected exception raised by Insert when Before not in the range Source'First..Source'Last+1");
         end B_2;

-- 159:                "the range Source'First..Source'Last+1");

-- 160:       end;

-- 161:

-- 162:       JS.Insert(TC_Unb_String, 1, "**");
         jwa__strings.jwa__strings__insert__2 (tc_unb_string, 1, "**");
         E145b : boolean;

-- 163:

-- 164:       if TC_Unb_String /= JS.To_String_8("**Test String") then
         B139b : declare
            M146b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F144b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B139b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F144b);
               $system__secondary_stack__ss_release (M146b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B139b___clean;
         begin
            type test_jwa_cxa4032__test_block__B139b__A141b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B139b__A141b []
            R142b : test_jwa_cxa4032__test_block__B139b__A141b :=
              jwa__strings.jwa__strings__create__2 ("**Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F144b, R142b.all'address, 1);
            E145b := not (jwa__strings__Oeq (tc_unb_string, R142b.all));
         at end
            test_jwa_cxa4032__test_block__B139b___clean;
         end B139b;
         if E145b then

-- 165:          Report.Failed("Incorrect results from Insert - 1");
            report.report__failed ("Incorrect results from Insert - 1");

-- 166:       end if;
         end if;
         C148b : natural;

-- 167:

-- 168:       JS.Insert(TC_Unb_String, JS.Length(TC_Unb_String)+1, "**");
         B150b : declare
            L149b : label
         begin

-- 169:

-- 170:       if TC_Unb_String /= JS.To_String_8("**Test String**") then
            if tc_unb_string.ptr = null then
               C148b := 0;
               goto L149b;
            else
               R152b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R152b = null
                 "access check failed"]
               R153b : constant natural := R152b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B150b__S151b is
                 jwa__strings__string_8_data (R153b);
               R155b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R155b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R155b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C148b := R155b.all.data.length;
               goto L149b;
            end if;
            <<L149b>>
         end B150b;
         jwa__strings.jwa__strings__insert__2 (tc_unb_string, C148b {+}
           1, "**");
         E163b : boolean;
         B157b : declare
            M164b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F162b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B157b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F162b);
               $system__secondary_stack__ss_release (M164b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B157b___clean;
         begin
            type test_jwa_cxa4032__test_block__B157b__A159b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B157b__A159b []
            R160b : test_jwa_cxa4032__test_block__B157b__A159b :=
              jwa__strings.jwa__strings__create__2 ("**Test String**")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F162b, R160b.all'address, 1);
            E163b := not (jwa__strings__Oeq (tc_unb_string, R160b.all));
         at end
            test_jwa_cxa4032__test_block__B157b___clean;
         end B157b;
         if E163b then

-- 171:          Report.Failed("Incorrect results from Insert - 2");
            report.report__failed ("Incorrect results from Insert - 2");

-- 172:       end if;
         end if;

-- 173:

-- 174:       JS.Insert(TC_Unb_String, 8, "---");
         jwa__strings.jwa__strings__insert__2 (tc_unb_string, 8, "---");
         E173b : boolean;

-- 175:

-- 176:       if TC_Unb_String /= JS.To_String_8("**Test ---String**") then
         B167b : declare
            M174b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F172b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B167b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F172b);
               $system__secondary_stack__ss_release (M174b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B167b___clean;
         begin
            type test_jwa_cxa4032__test_block__B167b__A169b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B167b__A169b []
            R170b : test_jwa_cxa4032__test_block__B167b__A169b :=
              jwa__strings.jwa__strings__create__2 ("**Test ---String**")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F172b, R170b.all'address, 1);
            E173b := not (jwa__strings__Oeq (tc_unb_string, R170b.all));
         at end
            test_jwa_cxa4032__test_block__B167b___clean;
         end B167b;
         if E173b then

-- 177:          Report.Failed("Incorrect results from Insert - 3");
            report.report__failed ("Incorrect results from Insert - 3");

-- 178:       end if;
         end if;

-- 179:

-- 180:       JS.Insert(TC_Unb_String, 3, TC_Null_String);
         jwa__strings.jwa__strings__insert__2 (tc_unb_string, 3,
           tc_null_string);
         E182b : boolean;

-- 181:

-- 182:       if TC_Unb_String /= JS.To_String_8("**Test ---String**") then
         B176b : declare
            M183b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F181b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B176b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F181b);
               $system__secondary_stack__ss_release (M183b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B176b___clean;
         begin
            type test_jwa_cxa4032__test_block__B176b__A178b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B176b__A178b []
            R179b : test_jwa_cxa4032__test_block__B176b__A178b :=
              jwa__strings.jwa__strings__create__2 ("**Test ---String**")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F181b, R179b.all'address, 1);
            E182b := not (jwa__strings__Oeq (tc_unb_string, R179b.all));
         at end
            test_jwa_cxa4032__test_block__B176b___clean;
         end B176b;
         if E182b then

-- 183:          Report.Failed("Incorrect results from Insert - 4");
            report.report__failed ("Incorrect results from Insert - 4");

-- 184:       end if;
         end if;

-- 185:

-- 186:
-- 187:       -- Procedure Overwrite

-- 188:

-- 189:       begin                -- Position not in Source'First..Source'Last + 1
         B_3 : begin
            C185b : natural;

-- 190:          JS.Overwrite(Source   => TC_Unb_String,

-- 191:                        Position => JS.Length(TC_Unb_String) + 2,
            B187b : declare
               L186b : label
            begin
               if tc_unb_string.ptr = null then
                  C185b := 0;
                  goto L186b;
               else
                  R189b : jwa__strings__string_8_internal_ptr renames
                    tc_unb_string.ptr;
                  [constraint_error when
                    R189b = null
                    "access check failed"]
                  R190b : constant natural := R189b.all.capacity;
                  subtype
                    test_jwa_cxa4032__test_block__B_3__B187b__S188b is
                    jwa__strings__string_8_data (R190b);
                  R192b : jwa__strings__string_8_internal_ptr renames
                    tc_unb_string.ptr;
                  [constraint_error when
                    R192b = null
                    "access check failed"]
                  [constraint_error when
                    not (interfaces__unsigned_32!(R192b.all.data.length) <=
                      16#7FFF_FFFF#)
                    "invalid data"]
                  C185b := R192b.all.data.length;
                  goto L186b;
               end if;
               <<L186b>>
            end B187b;
            jwa__strings.jwa__strings__overwrite__2 (source =>
              tc_unb_string, position => C185b {+} 2, new_item =>
              tc_string_5);

-- 192:                        New_Item => TC_String_5);

-- 193:          Report.Failed("Index_Error not raised by Overwrite when Position " &
            report.report__failed (
              "Index_Error not raised by Overwrite when Position not in the range Source'First..Source'Last+1");
         exception

-- 194:                        "not in the range Source'First..Source'Last+1");

-- 195:       exception

-- 196:          when Index_Error => null;  -- OK, expected exception.
            when ada__strings__index_error =>
               system__soft_links__abort_undefer.all;
               null;

-- 197:          when others      =>
            when others =>
               system__soft_links__abort_undefer.all;

-- 198:             Report.Failed
               report.report__failed (

-- 199:               ("Unexpected exception raised by Overwrite when Position not " &
                 "Unexpected exception raised by Overwrite when Position not in the range Source'First..Source'Last+1");
         end B_3;

-- 200:                "in the range Source'First..Source'Last+1");

-- 201:       end;

-- 202:

-- 203:       TC_Unb_String := JS.To_String_8("Test String");
         B195b : declare
            M202b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F200b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B195b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F200b);
               $system__secondary_stack__ss_release (M202b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B195b___clean;
         begin
            type test_jwa_cxa4032__test_block__B195b__A197b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B195b__A197b []
            R198b : test_jwa_cxa4032__test_block__B195b__A197b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F200b, R198b.all'address, 1);
            B201b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R198b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B201b;
         at end
            test_jwa_cxa4032__test_block__B195b___clean;
         end B195b;

-- 204:

-- 205:       JS.Overwrite(Source   => TC_Unb_String,
         jwa__strings.jwa__strings__overwrite__2 (source =>
           tc_unb_string, position => 1, new_item => "XXXX");
         E210b : boolean;

-- 206:                     Position => 1,

-- 207:                     New_Item => "XXXX");

-- 208:

-- 209:       if TC_Unb_String /= JS.To_String_8("XXXX String") then
         B204b : declare
            M211b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F209b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B204b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F209b);
               $system__secondary_stack__ss_release (M211b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B204b___clean;
         begin
            type test_jwa_cxa4032__test_block__B204b__A206b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B204b__A206b []
            R207b : test_jwa_cxa4032__test_block__B204b__A206b :=
              jwa__strings.jwa__strings__create__2 ("XXXX String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F209b, R207b.all'address, 1);
            E210b := not (jwa__strings__Oeq (tc_unb_string, R207b.all));
         at end
            test_jwa_cxa4032__test_block__B204b___clean;
         end B204b;
         if E210b then

-- 210:          Report.Failed("Incorrect results from Overwrite - 1");
            report.report__failed ("Incorrect results from Overwrite - 1");

-- 211:       end if;
         end if;
         C213b : natural;

-- 212:

-- 213:       JS.Overwrite(TC_Unb_String, JS.Length(TC_Unb_String)+1, "**");
         B215b : declare
            L214b : label
         begin

-- 214:

-- 215:       if TC_Unb_String /= JS.To_String_8("XXXX String**") then
            if tc_unb_string.ptr = null then
               C213b := 0;
               goto L214b;
            else
               R217b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R217b = null
                 "access check failed"]
               R218b : constant natural := R217b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B215b__S216b is
                 jwa__strings__string_8_data (R218b);
               R220b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R220b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R220b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C213b := R220b.all.data.length;
               goto L214b;
            end if;
            <<L214b>>
         end B215b;
         jwa__strings.jwa__strings__overwrite__2 (tc_unb_string, C213b {+}
           1, "**");
         E228b : boolean;
         B222b : declare
            M229b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F227b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B222b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F227b);
               $system__secondary_stack__ss_release (M229b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B222b___clean;
         begin
            type test_jwa_cxa4032__test_block__B222b__A224b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B222b__A224b []
            R225b : test_jwa_cxa4032__test_block__B222b__A224b :=
              jwa__strings.jwa__strings__create__2 ("XXXX String**")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F227b, R225b.all'address, 1);
            E228b := not (jwa__strings__Oeq (tc_unb_string, R225b.all));
         at end
            test_jwa_cxa4032__test_block__B222b___clean;
         end B222b;
         if E228b then

-- 216:          Report.Failed("Incorrect results from Overwrite - 2");
            report.report__failed ("Incorrect results from Overwrite - 2");

-- 217:       end if;
         end if;

-- 218:

-- 219:       JS.Overwrite(TC_Unb_String, 3, TC_Null_String);
         jwa__strings.jwa__strings__overwrite__2 (tc_unb_string, 3,
           tc_null_string);
         E237b : boolean;

-- 220:

-- 221:       if TC_Unb_String /= JS.To_String_8("XXXX String**") then
         B231b : declare
            M238b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F236b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B231b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F236b);
               $system__secondary_stack__ss_release (M238b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B231b___clean;
         begin
            type test_jwa_cxa4032__test_block__B231b__A233b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B231b__A233b []
            R234b : test_jwa_cxa4032__test_block__B231b__A233b :=
              jwa__strings.jwa__strings__create__2 ("XXXX String**")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F236b, R234b.all'address, 1);
            E237b := not (jwa__strings__Oeq (tc_unb_string, R234b.all));
         at end
            test_jwa_cxa4032__test_block__B231b___clean;
         end B231b;
         if E237b then

-- 222:          Report.Failed("Incorrect results from Overwrite - 3");
            report.report__failed ("Incorrect results from Overwrite - 3");

-- 223:       end if;
         end if;

-- 224:

-- 225:       JS.Overwrite(TC_Unb_String, 1, "abcdefghijklmn");
         jwa__strings.jwa__strings__overwrite__2 (tc_unb_string, 1,
           "abcdefghijklmn");
         E247b : boolean;

-- 226:

-- 227:       if TC_Unb_String /= JS.To_String_8("abcdefghijklmn") then
         B241b : declare
            M248b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F246b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B241b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F246b);
               $system__secondary_stack__ss_release (M248b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B241b___clean;
         begin
            type test_jwa_cxa4032__test_block__B241b__A243b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B241b__A243b []
            R244b : test_jwa_cxa4032__test_block__B241b__A243b :=
              jwa__strings.jwa__strings__create__2 ("abcdefghijklmn")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F246b, R244b.all'address, 1);
            E247b := not (jwa__strings__Oeq (tc_unb_string, R244b.all));
         at end
            test_jwa_cxa4032__test_block__B241b___clean;
         end B241b;
         if E247b then

-- 228:          Report.Failed("Incorrect results from Overwrite - 4");
            report.report__failed ("Incorrect results from Overwrite - 4");

-- 229:       end if;
         end if;

-- 230:

-- 231:
-- 232:       -- Procedure Delete

-- 233:

-- 234:       TC_Unb_String := JS.To_String_8("Test String");
         B250b : declare
            M257b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F255b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B250b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F255b);
               $system__secondary_stack__ss_release (M257b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B250b___clean;
         begin
            type test_jwa_cxa4032__test_block__B250b__A252b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B250b__A252b []
            R253b : test_jwa_cxa4032__test_block__B250b__A252b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F255b, R253b.all'address, 1);
            B256b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R253b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B256b;
         at end
            test_jwa_cxa4032__test_block__B250b___clean;
         end B250b;
         C258b : natural;

-- 235:
-- 236:       -- From > Through  (No change to Source)

-- 237:

-- 238:       JS.Delete(Source  => TC_Unb_String,

-- 239:                  From    => JS.Length(TC_Unb_String),
         B260b : declare
            L259b : label
         begin
            if tc_unb_string.ptr = null then
               C258b := 0;
               goto L259b;
            else
               R262b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R262b = null
                 "access check failed"]
               R263b : constant natural := R262b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B260b__S261b is
                 jwa__strings__string_8_data (R263b);
               R265b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R265b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R265b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C258b := R265b.all.data.length;
               goto L259b;
            end if;
            <<L259b>>
         end B260b;
         C266b : natural;

-- 240:                  Through => JS.Length(TC_Unb_String)-1);
         B268b : declare
            L267b : label
         begin

-- 241:

-- 242:       if TC_Unb_String /= JS.To_String_8("Test String") then
            if tc_unb_string.ptr = null then
               C266b := 0;
               goto L267b;
            else
               R270b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R270b = null
                 "access check failed"]
               R271b : constant natural := R270b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B268b__S269b is
                 jwa__strings__string_8_data (R271b);
               R273b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R273b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R273b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C266b := R273b.all.data.length;
               goto L267b;
            end if;
            <<L267b>>
         end B268b;
         [constraint_error when
           not (C258b >= 1)
           "range check failed"]
         [constraint_error when
           not (C266b - 1 >= 0)
           "range check failed"]
         jwa__strings.jwa__strings__delete__2 (source => tc_unb_string,
           from => C258b, through => C266b - 1);
         E280b : boolean;
         B274b : declare
            M281b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F279b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__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_cxa4032__test_block__B274b___clean;
         begin
            type test_jwa_cxa4032__test_block__B274b__A276b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B274b__A276b []
            R277b : test_jwa_cxa4032__test_block__B274b__A276b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F279b, R277b.all'address, 1);
            E280b := not (jwa__strings__Oeq (tc_unb_string, R277b.all));
         at end
            test_jwa_cxa4032__test_block__B274b___clean;
         end B274b;
         if E280b then

-- 243:          Report.Failed("Incorrect results from Delete - 1");
            report.report__failed ("Incorrect results from Delete - 1");

-- 244:       end if;
         end if;

-- 245:

-- 246:       JS.Delete(TC_Unb_String, 1, 0);
         jwa__strings.jwa__strings__delete__2 (tc_unb_string, 1, 0);
         E289b : boolean;

-- 247:

-- 248:       if TC_Unb_String /= JS.To_String_8("Test String") then
         B283b : declare
            M290b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F288b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B283b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F288b);
               $system__secondary_stack__ss_release (M290b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B283b___clean;
         begin
            type test_jwa_cxa4032__test_block__B283b__A285b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B283b__A285b []
            R286b : test_jwa_cxa4032__test_block__B283b__A285b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F288b, R286b.all'address, 1);
            E289b := not (jwa__strings__Oeq (tc_unb_string, R286b.all));
         at end
            test_jwa_cxa4032__test_block__B283b___clean;
         end B283b;
         if E289b then

-- 249:          Report.Failed("Incorrect results from Delete - 2");
            report.report__failed ("Incorrect results from Delete - 2");

-- 250:       end if;
         end if;

-- 251:
-- 252:       -- From <= Through

-- 253:

-- 254:       JS.Delete(TC_Unb_String, 1, 5);
         jwa__strings.jwa__strings__delete__2 (tc_unb_string, 1, 5);
         E298b : boolean;

-- 255:

-- 256:       if TC_Unb_String /= JS.To_String_8("String") then
         B292b : declare
            M299b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F297b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B292b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F297b);
               $system__secondary_stack__ss_release (M299b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B292b___clean;
         begin
            type test_jwa_cxa4032__test_block__B292b__A294b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B292b__A294b []
            R295b : test_jwa_cxa4032__test_block__B292b__A294b :=
              jwa__strings.jwa__strings__create__2 ("String")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F297b, R295b.all'address, 1);
            E298b := not (jwa__strings__Oeq (tc_unb_string, R295b.all));
         at end
            test_jwa_cxa4032__test_block__B292b___clean;
         end B292b;
         if E298b then

-- 257:          Report.Failed("Incorrect results from Delete - 3");
            report.report__failed ("Incorrect results from Delete - 3");

-- 258:       end if;
         end if;

-- 259:

-- 260:       JS.Delete(TC_Unb_String, 3, 3);
         jwa__strings.jwa__strings__delete__2 (tc_unb_string, 3, 3);
         E307b : boolean;

-- 261:

-- 262:       if TC_Unb_String /= JS.To_String_8("Sting") then
         B301b : declare
            M308b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F306b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B301b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F306b);
               $system__secondary_stack__ss_release (M308b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B301b___clean;
         begin
            type test_jwa_cxa4032__test_block__B301b__A303b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B301b__A303b []
            R304b : test_jwa_cxa4032__test_block__B301b__A303b :=
              jwa__strings.jwa__strings__create__2 ("Sting")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F306b, R304b.all'address, 1);
            E307b := not (jwa__strings__Oeq (tc_unb_string, R304b.all));
         at end
            test_jwa_cxa4032__test_block__B301b___clean;
         end B301b;
         if E307b then

-- 263:          Report.Failed("Incorrect results from Delete - 4");
            report.report__failed ("Incorrect results from Delete - 4");

-- 264:       end if;
         end if;

-- 265:

-- 266:
-- 267:       -- Procedure Trim

-- 268:

-- 269:       TC_Unb_String := JS.To_String_8("No Spaces");
         B310b : declare
            M317b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F315b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B310b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F315b);
               $system__secondary_stack__ss_release (M317b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B310b___clean;
         begin
            type test_jwa_cxa4032__test_block__B310b__A312b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B310b__A312b []
            R313b : test_jwa_cxa4032__test_block__B310b__A312b :=
              jwa__strings.jwa__strings__create__2 ("No Spaces")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F315b, R313b.all'address, 1);
            B316b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R313b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B316b;
         at end
            test_jwa_cxa4032__test_block__B310b___clean;
         end B310b;

-- 270:

-- 271:       JS.Trim(Source => TC_Unb_String, Side => Ada.Strings.Both);
         jwa__strings.jwa__strings__trim__2 (source => tc_unb_string,
           side => ada.ada__strings.ada__strings__both);
         E324b : boolean;

-- 272:

-- 273:       if TC_Unb_String /= JS.To_String_8("No Spaces") then
         B318b : declare
            M325b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F323b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B318b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F323b);
               $system__secondary_stack__ss_release (M325b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B318b___clean;
         begin
            type test_jwa_cxa4032__test_block__B318b__A320b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B318b__A320b []
            R321b : test_jwa_cxa4032__test_block__B318b__A320b :=
              jwa__strings.jwa__strings__create__2 ("No Spaces")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F323b, R321b.all'address, 1);
            E324b := not (jwa__strings__Oeq (tc_unb_string, R321b.all));
         at end
            test_jwa_cxa4032__test_block__B318b___clean;
         end B318b;
         if E324b then

-- 274:          Report.Failed("Incorrect results from Trim - 1");
            report.report__failed ("Incorrect results from Trim - 1");

-- 275:       end if;
         end if;

-- 276:

-- 277:       TC_Unb_String := JS.To_String_8("   Leading Spaces   ");
         B327b : declare
            M334b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F332b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B327b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F332b);
               $system__secondary_stack__ss_release (M334b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B327b___clean;
         begin
            type test_jwa_cxa4032__test_block__B327b__A329b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B327b__A329b []
            R330b : test_jwa_cxa4032__test_block__B327b__A329b :=
              jwa__strings.jwa__strings__create__2 (
              "   Leading Spaces   ")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F332b, R330b.all'address, 1);
            B333b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R330b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B333b;
         at end
            test_jwa_cxa4032__test_block__B327b___clean;
         end B327b;

-- 278:

-- 279:       JS.Trim(TC_Unb_String, Ada.Strings.Left);
         jwa__strings.jwa__strings__trim__2 (tc_unb_string, ada.
           ada__strings.ada__strings__left__3);
         E341b : boolean;

-- 280:

-- 281:       if TC_Unb_String /= JS.To_String_8("Leading Spaces   ") then
         B335b : declare
            M342b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F340b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B335b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F340b);
               $system__secondary_stack__ss_release (M342b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B335b___clean;
         begin
            type test_jwa_cxa4032__test_block__B335b__A337b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B335b__A337b []
            R338b : test_jwa_cxa4032__test_block__B335b__A337b :=
              jwa__strings.jwa__strings__create__2 ("Leading Spaces   ")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F340b, R338b.all'address, 1);
            E341b := not (jwa__strings__Oeq (tc_unb_string, R338b.all));
         at end
            test_jwa_cxa4032__test_block__B335b___clean;
         end B335b;
         if E341b then

-- 282:          Report.Failed("Incorrect results from Trim - 2");
            report.report__failed ("Incorrect results from Trim - 2");

-- 283:       end if;
         end if;

-- 284:

-- 285:       TC_Unb_String := JS.To_String_8("   Ending Spaces   ");
         B344b : declare
            M351b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F349b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B344b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F349b);
               $system__secondary_stack__ss_release (M351b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B344b___clean;
         begin
            type test_jwa_cxa4032__test_block__B344b__A346b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B344b__A346b []
            R347b : test_jwa_cxa4032__test_block__B344b__A346b :=
              jwa__strings.jwa__strings__create__2 ("   Ending Spaces   ")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F349b, R347b.all'address, 1);
            B350b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R347b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B350b;
         at end
            test_jwa_cxa4032__test_block__B344b___clean;
         end B344b;

-- 286:

-- 287:       JS.Trim(TC_Unb_String, Ada.Strings.Right);
         jwa__strings.jwa__strings__trim__2 (tc_unb_string, ada.
           ada__strings.ada__strings__right__3);
         E358b : boolean;

-- 288:

-- 289:       if TC_Unb_String /= JS.To_String_8("   Ending Spaces") then
         B352b : declare
            M359b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F357b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B352b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F357b);
               $system__secondary_stack__ss_release (M359b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B352b___clean;
         begin
            type test_jwa_cxa4032__test_block__B352b__A354b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B352b__A354b []
            R355b : test_jwa_cxa4032__test_block__B352b__A354b :=
              jwa__strings.jwa__strings__create__2 ("   Ending Spaces")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F357b, R355b.all'address, 1);
            E358b := not (jwa__strings__Oeq (tc_unb_string, R355b.all));
         at end
            test_jwa_cxa4032__test_block__B352b___clean;
         end B352b;
         if E358b then

-- 290:          Report.Failed("Incorrect results from Trim - 3");
            report.report__failed ("Incorrect results from Trim - 3");

-- 291:       end if;
         end if;

-- 292:

-- 293:       TC_Unb_String :=
         B361b : declare
            M368b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F366b : system__finalization_root__finalizable_ptr := null;

-- 294:         JS.To_String_8("    Spaces   on  both  ends     ");
            procedure test_jwa_cxa4032__test_block__B361b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F366b);
               $system__secondary_stack__ss_release (M368b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B361b___clean;
         begin
            type test_jwa_cxa4032__test_block__B361b__A363b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B361b__A363b []
            R364b : test_jwa_cxa4032__test_block__B361b__A363b :=
              jwa__strings.jwa__strings__create__2 (
              "    Spaces   on  both  ends     ")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F366b, R364b.all'address, 1);
            B367b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R364b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B367b;
         at end
            test_jwa_cxa4032__test_block__B361b___clean;
         end B361b;

-- 295:

-- 296:       JS.Trim(TC_Unb_String, Ada.Strings.Both);
         jwa__strings.jwa__strings__trim__2 (tc_unb_string, ada.
           ada__strings.ada__strings__both);
         E375b : boolean;

-- 297:

-- 298:       if TC_Unb_String /=
         B369b : declare
            M376b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F374b : system__finalization_root__finalizable_ptr := null;

-- 299:          JS.To_String_8("Spaces   on  both  ends")
            procedure test_jwa_cxa4032__test_block__B369b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F374b);
               $system__secondary_stack__ss_release (M376b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B369b___clean;
         begin
            type test_jwa_cxa4032__test_block__B369b__A371b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B369b__A371b []
            R372b : test_jwa_cxa4032__test_block__B369b__A371b :=
              jwa__strings.jwa__strings__create__2 (
              "Spaces   on  both  ends")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F374b, R372b.all'address, 1);
            E375b := not (jwa__strings__Oeq (tc_unb_string, R372b.all));
         at end
            test_jwa_cxa4032__test_block__B369b___clean;
         end B369b;
         if E375b then

-- 300:       then

-- 301:          Report.Failed("Incorrect results from Trim - 4");
            report.report__failed ("Incorrect results from Trim - 4");

-- 302:       end if;
         end if;

-- 303:

-- 304:
-- 305:       -- Procedure Trim (with Character Set parameters)

-- 306:

-- 307:       TC_Unb_String := JS.To_String_8("lowerCASEletters");
         B378b : declare
            M385b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F383b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B378b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F383b);
               $system__secondary_stack__ss_release (M385b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B378b___clean;
         begin
            type test_jwa_cxa4032__test_block__B378b__A380b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B378b__A380b []
            R381b : test_jwa_cxa4032__test_block__B378b__A380b :=
              jwa__strings.jwa__strings__create__2 ("lowerCASEletters")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F383b, R381b.all'address, 1);
            B384b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R381b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B384b;
         at end
            test_jwa_cxa4032__test_block__B378b___clean;
         end B378b;

-- 308:

-- 309:       JS.Trim(Source => TC_Unb_String,
         jwa__strings.jwa__strings__trim__4 (source => tc_unb_string,
           left => ada.ada__strings.ada__strings__maps.
           ada__strings__maps__constants.
           ada__strings__maps__constants__lower_set, right => ada.
           ada__strings.ada__strings__maps.
           ada__strings__maps__constants.
           ada__strings__maps__constants__lower_set);
         E392b : boolean;

-- 310:                Left   => Ada.Strings.Maps.Constants.Lower_Set,

-- 311:                Right  => Ada.Strings.Maps.Constants.Lower_Set);

-- 312:

-- 313:       if TC_Unb_String /= JS.To_String_8("CASE") then
         B386b : declare
            M393b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F391b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B386b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F391b);
               $system__secondary_stack__ss_release (M393b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B386b___clean;
         begin
            type test_jwa_cxa4032__test_block__B386b__A388b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B386b__A388b []
            R389b : test_jwa_cxa4032__test_block__B386b__A388b :=
              jwa__strings.jwa__strings__create__2 ("CASE")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F391b, R389b.all'address, 1);
            E392b := not (jwa__strings__Oeq (tc_unb_string, R389b.all));
         at end
            test_jwa_cxa4032__test_block__B386b___clean;
         end B386b;
         if E392b then

-- 314:          Report.Failed("Incorrect results from Trim with Sets - 1");
            report.report__failed (
              "Incorrect results from Trim with Sets - 1");

-- 315:       end if;
         end if;

-- 316:

-- 317:       TC_Unb_String := JS.To_String_8("lowerCASEletters");
         B395b : declare
            M402b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F400b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B395b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F400b);
               $system__secondary_stack__ss_release (M402b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B395b___clean;
         begin
            type test_jwa_cxa4032__test_block__B395b__A397b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B395b__A397b []
            R398b : test_jwa_cxa4032__test_block__B395b__A397b :=
              jwa__strings.jwa__strings__create__2 ("lowerCASEletters")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F400b, R398b.all'address, 1);
            B401b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R398b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B401b;
         at end
            test_jwa_cxa4032__test_block__B395b___clean;
         end B395b;

-- 318:

-- 319:       JS.Trim(TC_Unb_String,
         jwa__strings.jwa__strings__trim__4 (tc_unb_string, ada.
           ada__strings.ada__strings__maps.
           ada__strings__maps__constants.
           ada__strings__maps__constants__upper_set, ada.ada__strings.
           ada__strings__maps.ada__strings__maps__constants.
           ada__strings__maps__constants__upper_set);
         E409b : boolean;

-- 320:                Ada.Strings.Maps.Constants.Upper_Set,

-- 321:                Ada.Strings.Maps.Constants.Upper_Set);

-- 322:

-- 323:       if TC_Unb_String /= JS.To_String_8("lowerCASEletters") then
         B403b : declare
            M410b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F408b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B403b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F408b);
               $system__secondary_stack__ss_release (M410b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B403b___clean;
         begin
            type test_jwa_cxa4032__test_block__B403b__A405b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B403b__A405b []
            R406b : test_jwa_cxa4032__test_block__B403b__A405b :=
              jwa__strings.jwa__strings__create__2 ("lowerCASEletters")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F408b, R406b.all'address, 1);
            E409b := not (jwa__strings__Oeq (tc_unb_string, R406b.all));
         at end
            test_jwa_cxa4032__test_block__B403b___clean;
         end B403b;
         if E409b then

-- 324:          Report.Failed("Incorrect results from Trim with Sets - 2");
            report.report__failed (
              "Incorrect results from Trim with Sets - 2");

-- 325:       end if;
         end if;

-- 326:

-- 327:       TC_Unb_String := JS.To_String_8("012abcdefghGFEDCBA789ab");
         B412b : declare
            M419b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F417b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B412b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F417b);
               $system__secondary_stack__ss_release (M419b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B412b___clean;
         begin
            type test_jwa_cxa4032__test_block__B412b__A414b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B412b__A414b []
            R415b : test_jwa_cxa4032__test_block__B412b__A414b :=
              jwa__strings.jwa__strings__create__2 (
              "012abcdefghGFEDCBA789ab")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F417b, R415b.all'address, 1);
            B418b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R415b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B418b;
         at end
            test_jwa_cxa4032__test_block__B412b___clean;
         end B412b;

-- 328:

-- 329:       JS.Trim(TC_Unb_String,
         jwa__strings.jwa__strings__trim__4 (tc_unb_string, ada.
           ada__strings.ada__strings__maps.
           ada__strings__maps__constants.
           ada__strings__maps__constants__hexadecimal_digit_set, ada.
           ada__strings.ada__strings__maps.
           ada__strings__maps__constants.
           ada__strings__maps__constants__hexadecimal_digit_set);
         E426b : boolean;

-- 330:                Ada.Strings.Maps.Constants.Hexadecimal_Digit_Set,

-- 331:                Ada.Strings.Maps.Constants.Hexadecimal_Digit_Set);

-- 332:

-- 333:       if TC_Unb_String /= JS.To_String_8("ghG") then
         B420b : declare
            M427b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F425b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B420b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F425b);
               $system__secondary_stack__ss_release (M427b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B420b___clean;
         begin
            type test_jwa_cxa4032__test_block__B420b__A422b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B420b__A422b []
            R423b : test_jwa_cxa4032__test_block__B420b__A422b :=
              jwa__strings.jwa__strings__create__2 ("ghG")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F425b, R423b.all'address, 1);
            E426b := not (jwa__strings__Oeq (tc_unb_string, R423b.all));
         at end
            test_jwa_cxa4032__test_block__B420b___clean;
         end B420b;
         if E426b then

-- 334:          Report.Failed("Incorrect results from Trim with Sets - 3");
            report.report__failed (
              "Incorrect results from Trim with Sets - 3");

-- 335:       end if;
         end if;

-- 336:

-- 337:
-- 338:       -- Procedure Head

-- 339:
-- 340:       -- Count <= Source'Length

-- 341:

-- 342:       TC_Unb_String := JS.To_String_8("Test String");
         B429b : declare
            M436b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F434b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B429b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F434b);
               $system__secondary_stack__ss_release (M436b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B429b___clean;
         begin
            type test_jwa_cxa4032__test_block__B429b__A431b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B429b__A431b []
            R432b : test_jwa_cxa4032__test_block__B429b__A431b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F434b, R432b.all'address, 1);
            B435b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R432b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B435b;
         at end
            test_jwa_cxa4032__test_block__B429b___clean;
         end B429b;

-- 343:

-- 344:       JS.Head(Source => TC_Unb_String,
         jwa__strings.jwa__strings__head__2 (source => tc_unb_string,
           count => 0, pad => '*');

-- 345:                Count  => 0,

-- 346:                Pad    => '*');

-- 347:

-- 348:       if TC_Unb_String /= JS.Null_String_8 then
         if not (jwa__strings__Oeq (tc_unb_string, jwa__strings.
           jwa__strings__null_string_8)) then

-- 349:          Report.Failed("Incorrect results from Head - 1");
            report.report__failed ("Incorrect results from Head - 1");

-- 350:       end if;
         end if;

-- 351:

-- 352:       TC_Unb_String := JS.To_String_8("Test String");
         B438b : declare
            M445b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F443b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B438b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F443b);
               $system__secondary_stack__ss_release (M445b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B438b___clean;
         begin
            type test_jwa_cxa4032__test_block__B438b__A440b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B438b__A440b []
            R441b : test_jwa_cxa4032__test_block__B438b__A440b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F443b, R441b.all'address, 1);
            B444b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R441b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B444b;
         at end
            test_jwa_cxa4032__test_block__B438b___clean;
         end B438b;

-- 353:

-- 354:       JS.Head(Source => TC_Unb_String,
         jwa__strings.jwa__strings__head__2 (source => tc_unb_string,
           count => 4, pad => '*');
         E452b : boolean;

-- 355:                Count  => 4,

-- 356:                Pad    => '*');

-- 357:

-- 358:       if TC_Unb_String /= JS.To_String_8("Test") then
         B446b : declare
            M453b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F451b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B446b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F451b);
               $system__secondary_stack__ss_release (M453b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B446b___clean;
         begin
            type test_jwa_cxa4032__test_block__B446b__A448b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B446b__A448b []
            R449b : test_jwa_cxa4032__test_block__B446b__A448b :=
              jwa__strings.jwa__strings__create__2 ("Test")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F451b, R449b.all'address, 1);
            E452b := not (jwa__strings__Oeq (tc_unb_string, R449b.all));
         at end
            test_jwa_cxa4032__test_block__B446b___clean;
         end B446b;
         if E452b then

-- 359:          Report.Failed("Incorrect results from Head - 2");
            report.report__failed ("Incorrect results from Head - 2");

-- 360:       end if;
         end if;

-- 361:

-- 362:       TC_Unb_String := JS.To_String_8("Test String");
         B455b : declare
            M462b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F460b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B455b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F460b);
               $system__secondary_stack__ss_release (M462b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B455b___clean;
         begin
            type test_jwa_cxa4032__test_block__B455b__A457b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B455b__A457b []
            R458b : test_jwa_cxa4032__test_block__B455b__A457b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F460b, R458b.all'address, 1);
            B461b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R458b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B461b;
         at end
            test_jwa_cxa4032__test_block__B455b___clean;
         end B455b;
         C463b : natural;

-- 363:

-- 364:       JS.Head(Source => TC_Unb_String,

-- 365:                Count  => JS.Length(TC_Unb_String),
         B465b : declare
            L464b : label
         begin
            if tc_unb_string.ptr = null then
               C463b := 0;
               goto L464b;
            else
               R467b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R467b = null
                 "access check failed"]
               R468b : constant natural := R467b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B465b__S466b is
                 jwa__strings__string_8_data (R468b);
               R470b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R470b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R470b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C463b := R470b.all.data.length;
               goto L464b;
            end if;
            <<L464b>>
         end B465b;
         jwa__strings.jwa__strings__head__2 (source => tc_unb_string,
           count => C463b, pad => '*');
         E477b : boolean;

-- 366:                Pad    => '*');

-- 367:

-- 368:       if TC_Unb_String /= JS.To_String_8("Test String") then
         B471b : declare
            M478b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F476b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B471b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F476b);
               $system__secondary_stack__ss_release (M478b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B471b___clean;
         begin
            type test_jwa_cxa4032__test_block__B471b__A473b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B471b__A473b []
            R474b : test_jwa_cxa4032__test_block__B471b__A473b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F476b, R474b.all'address, 1);
            E477b := not (jwa__strings__Oeq (tc_unb_string, R474b.all));
         at end
            test_jwa_cxa4032__test_block__B471b___clean;
         end B471b;
         if E477b then

-- 369:          Report.Failed("Incorrect results from Head - 3");
            report.report__failed ("Incorrect results from Head - 3");

-- 370:       end if;
         end if;

-- 371:
-- 372:       -- Count > Source'Length

-- 373:

-- 374:       TC_Unb_String := JS.To_String_8("Test String");
         B480b : declare
            M487b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F485b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B480b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F485b);
               $system__secondary_stack__ss_release (M487b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B480b___clean;
         begin
            type test_jwa_cxa4032__test_block__B480b__A482b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B480b__A482b []
            R483b : test_jwa_cxa4032__test_block__B480b__A482b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F485b, R483b.all'address, 1);
            B486b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R483b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B486b;
         at end
            test_jwa_cxa4032__test_block__B480b___clean;
         end B480b;
         C488b : natural;

-- 375:

-- 376:       JS.Head(Source => TC_Unb_String,

-- 377:                Count  => JS.Length(TC_Unb_String) + 4,
         B490b : declare
            L489b : label
         begin
            if tc_unb_string.ptr = null then
               C488b := 0;
               goto L489b;
            else
               R492b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R492b = null
                 "access check failed"]
               R493b : constant natural := R492b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B490b__S491b is
                 jwa__strings__string_8_data (R493b);
               R495b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R495b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R495b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C488b := R495b.all.data.length;
               goto L489b;
            end if;
            <<L489b>>
         end B490b;
         jwa__strings.jwa__strings__head__2 (source => tc_unb_string,
           count => C488b {+} 4, pad => '*');
         E502b : boolean;

-- 378:                Pad    => '*');

-- 379:

-- 380:       if TC_Unb_String /= JS.To_String_8("Test String****") then
         B496b : declare
            M503b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F501b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B496b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F501b);
               $system__secondary_stack__ss_release (M503b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B496b___clean;
         begin
            type test_jwa_cxa4032__test_block__B496b__A498b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B496b__A498b []
            R499b : test_jwa_cxa4032__test_block__B496b__A498b :=
              jwa__strings.jwa__strings__create__2 ("Test String****")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F501b, R499b.all'address, 1);
            E502b := not (jwa__strings__Oeq (tc_unb_string, R499b.all));
         at end
            test_jwa_cxa4032__test_block__B496b___clean;
         end B496b;
         if E502b then

-- 381:          Report.Failed("Incorrect results from Head - 4");
            report.report__failed ("Incorrect results from Head - 4");

-- 382:       end if;
         end if;

-- 383:

-- 384:       TC_Unb_String := JS.Null_String_8;
         B505b : 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 B505b;
         C506b : natural;

-- 385:

-- 386:       JS.Head(Source => TC_Unb_String,

-- 387:                Count  => JS.Length(TC_Unb_String) + 3,
         B508b : declare
            L507b : label
         begin
            if tc_unb_string.ptr = null then
               C506b := 0;
               goto L507b;
            else
               R510b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R510b = null
                 "access check failed"]
               R511b : constant natural := R510b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B508b__S509b is
                 jwa__strings__string_8_data (R511b);
               R513b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R513b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R513b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C506b := R513b.all.data.length;
               goto L507b;
            end if;
            <<L507b>>
         end B508b;
         jwa__strings.jwa__strings__head__2 (source => tc_unb_string,
           count => C506b {+} 3, pad => '*');
         E520b : boolean;

-- 388:                Pad    => '*');

-- 389:

-- 390:       if TC_Unb_String /= JS.To_String_8("***") then
         B514b : declare
            M521b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F519b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B514b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F519b);
               $system__secondary_stack__ss_release (M521b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B514b___clean;
         begin
            type test_jwa_cxa4032__test_block__B514b__A516b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B514b__A516b []
            R517b : test_jwa_cxa4032__test_block__B514b__A516b :=
              jwa__strings.jwa__strings__create__2 ("***")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F519b, R517b.all'address, 1);
            E520b := not (jwa__strings__Oeq (tc_unb_string, R517b.all));
         at end
            test_jwa_cxa4032__test_block__B514b___clean;
         end B514b;
         if E520b then

-- 391:          Report.Failed("Incorrect results from Head - 5");
            report.report__failed ("Incorrect results from Head - 5");

-- 392:       end if;
         end if;

-- 393:

-- 394:
-- 395:       -- Procedure Tail

-- 396:
-- 397:       -- Count <= Source'Length

-- 398:

-- 399:       TC_Unb_String := JS.To_String_8("Test String");
         B523b : declare
            M530b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F528b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B523b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F528b);
               $system__secondary_stack__ss_release (M530b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B523b___clean;
         begin
            type test_jwa_cxa4032__test_block__B523b__A525b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B523b__A525b []
            R526b : test_jwa_cxa4032__test_block__B523b__A525b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F528b, R526b.all'address, 1);
            B529b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R526b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B529b;
         at end
            test_jwa_cxa4032__test_block__B523b___clean;
         end B523b;

-- 400:

-- 401:       JS.Tail(Source => TC_Unb_String,
         jwa__strings.jwa__strings__tail__2 (source => tc_unb_string,
           count => 0, pad => '*');

-- 402:                Count  => 0,

-- 403:                Pad    => '*');

-- 404:

-- 405:       if TC_Unb_String /= JS.Null_String_8 then
         if not (jwa__strings__Oeq (tc_unb_string, jwa__strings.
           jwa__strings__null_string_8)) then

-- 406:          Report.Failed("Incorrect results from Tail - 1");
            report.report__failed ("Incorrect results from Tail - 1");

-- 407:       end if;
         end if;

-- 408:

-- 409:       TC_Unb_String := JS.To_String_8("Test String");
         B532b : declare
            M539b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F537b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B532b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F537b);
               $system__secondary_stack__ss_release (M539b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B532b___clean;
         begin
            type test_jwa_cxa4032__test_block__B532b__A534b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B532b__A534b []
            R535b : test_jwa_cxa4032__test_block__B532b__A534b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F537b, R535b.all'address, 1);
            B538b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R535b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B538b;
         at end
            test_jwa_cxa4032__test_block__B532b___clean;
         end B532b;

-- 410:

-- 411:       JS.Tail(Source => TC_Unb_String,
         jwa__strings.jwa__strings__tail__2 (source => tc_unb_string,
           count => 6, pad => '*');
         E546b : boolean;

-- 412:                Count  => 6,

-- 413:                Pad    => '*');

-- 414:

-- 415:       if TC_Unb_String /= JS.To_String_8("String") then
         B540b : declare
            M547b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F545b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B540b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F545b);
               $system__secondary_stack__ss_release (M547b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B540b___clean;
         begin
            type test_jwa_cxa4032__test_block__B540b__A542b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B540b__A542b []
            R543b : test_jwa_cxa4032__test_block__B540b__A542b :=
              jwa__strings.jwa__strings__create__2 ("String")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F545b, R543b.all'address, 1);
            E546b := not (jwa__strings__Oeq (tc_unb_string, R543b.all));
         at end
            test_jwa_cxa4032__test_block__B540b___clean;
         end B540b;
         if E546b then

-- 416:          Report.Failed("Incorrect results from Tail - 2");
            report.report__failed ("Incorrect results from Tail - 2");

-- 417:       end if;
         end if;

-- 418:

-- 419:       TC_Unb_String := JS.To_String_8("Test String");
         B549b : declare
            M556b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F554b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B549b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F554b);
               $system__secondary_stack__ss_release (M556b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B549b___clean;
         begin
            type test_jwa_cxa4032__test_block__B549b__A551b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B549b__A551b []
            R552b : test_jwa_cxa4032__test_block__B549b__A551b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F554b, R552b.all'address, 1);
            B555b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R552b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B555b;
         at end
            test_jwa_cxa4032__test_block__B549b___clean;
         end B549b;
         C557b : natural;

-- 420:

-- 421:       JS.Tail(Source => TC_Unb_String,

-- 422:                Count  => JS.Length(TC_Unb_String),
         B559b : declare
            L558b : label
         begin
            if tc_unb_string.ptr = null then
               C557b := 0;
               goto L558b;
            else
               R561b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R561b = null
                 "access check failed"]
               R562b : constant natural := R561b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B559b__S560b is
                 jwa__strings__string_8_data (R562b);
               R564b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R564b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R564b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C557b := R564b.all.data.length;
               goto L558b;
            end if;
            <<L558b>>
         end B559b;
         jwa__strings.jwa__strings__tail__2 (source => tc_unb_string,
           count => C557b, pad => '*');
         E571b : boolean;

-- 423:                Pad    => '*');

-- 424:

-- 425:       if TC_Unb_String /= JS.To_String_8("Test String") then
         B565b : declare
            M572b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F570b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B565b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F570b);
               $system__secondary_stack__ss_release (M572b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B565b___clean;
         begin
            type test_jwa_cxa4032__test_block__B565b__A567b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B565b__A567b []
            R568b : test_jwa_cxa4032__test_block__B565b__A567b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F570b, R568b.all'address, 1);
            E571b := not (jwa__strings__Oeq (tc_unb_string, R568b.all));
         at end
            test_jwa_cxa4032__test_block__B565b___clean;
         end B565b;
         if E571b then

-- 426:          Report.Failed("Incorrect results from Tail - 3");
            report.report__failed ("Incorrect results from Tail - 3");

-- 427:       end if;
         end if;

-- 428:
-- 429:       -- Count > Source'Length

-- 430:

-- 431:       TC_Unb_String := JS.To_String_8("Test String");
         B574b : declare
            M581b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F579b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B574b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F579b);
               $system__secondary_stack__ss_release (M581b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B574b___clean;
         begin
            type test_jwa_cxa4032__test_block__B574b__A576b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B574b__A576b []
            R577b : test_jwa_cxa4032__test_block__B574b__A576b :=
              jwa__strings.jwa__strings__create__2 ("Test String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F579b, R577b.all'address, 1);
            B580b : begin
               system__soft_links__abort_defer.all;
               jwa__strings___assign__2 (tc_unb_string, R577b.all);
            at end
               system__standard_library__abort_undefer_direct;
            end B580b;
         at end
            test_jwa_cxa4032__test_block__B574b___clean;
         end B574b;
         C582b : natural;

-- 432:

-- 433:       JS.Tail(Source => TC_Unb_String,

-- 434:                Count  => JS.Length(TC_Unb_String) + 5,
         B584b : declare
            L583b : label
         begin
            if tc_unb_string.ptr = null then
               C582b := 0;
               goto L583b;
            else
               R586b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R586b = null
                 "access check failed"]
               R587b : constant natural := R586b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B584b__S585b is
                 jwa__strings__string_8_data (R587b);
               R589b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R589b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R589b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C582b := R589b.all.data.length;
               goto L583b;
            end if;
            <<L583b>>
         end B584b;
         jwa__strings.jwa__strings__tail__2 (source => tc_unb_string,
           count => C582b {+} 5, pad => 'x');
         E596b : boolean;

-- 435:                Pad    => 'x');

-- 436:

-- 437:       if TC_Unb_String /= JS.To_String_8("xxxxxTest String") then
         B590b : declare
            M597b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F595b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B590b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F595b);
               $system__secondary_stack__ss_release (M597b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B590b___clean;
         begin
            type test_jwa_cxa4032__test_block__B590b__A592b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B590b__A592b []
            R593b : test_jwa_cxa4032__test_block__B590b__A592b :=
              jwa__strings.jwa__strings__create__2 ("xxxxxTest String")
              'reference;
            $system__finalization_implementation__deep_tag_attach (
              F595b, R593b.all'address, 1);
            E596b := not (jwa__strings__Oeq (tc_unb_string, R593b.all));
         at end
            test_jwa_cxa4032__test_block__B590b___clean;
         end B590b;
         if E596b then

-- 438:          Report.Failed("Incorrect results from Tail - 4");
            report.report__failed ("Incorrect results from Tail - 4");

-- 439:       end if;
         end if;

-- 440:

-- 441:       TC_Unb_String := JS.Null_String_8;
         B599b : 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 B599b;
         C600b : natural;

-- 442:

-- 443:       JS.Tail(Source => TC_Unb_String,

-- 444:                Count  => JS.Length(TC_Unb_String) + 3,
         B602b : declare
            L601b : label
         begin
            if tc_unb_string.ptr = null then
               C600b := 0;
               goto L601b;
            else
               R604b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R604b = null
                 "access check failed"]
               R605b : constant natural := R604b.all.capacity;
               subtype test_jwa_cxa4032__test_block__B602b__S603b is
                 jwa__strings__string_8_data (R605b);
               R607b : jwa__strings__string_8_internal_ptr renames
                 tc_unb_string.ptr;
               [constraint_error when
                 R607b = null
                 "access check failed"]
               [constraint_error when
                 not (interfaces__unsigned_32!(R607b.all.data.length) <=
                   16#7FFF_FFFF#)
                 "invalid data"]
               C600b := R607b.all.data.length;
               goto L601b;
            end if;
            <<L601b>>
         end B602b;
         jwa__strings.jwa__strings__tail__2 (source => tc_unb_string,
           count => C600b {+} 3, pad => 'X');
         E614b : boolean;

-- 445:                Pad    => 'X');

-- 446:

-- 447:       if TC_Unb_String /= JS.To_String_8("XXX") then
         B608b : declare
            M615b : system__secondary_stack__mark_id :=
              $system__secondary_stack__ss_mark;
            F613b : system__finalization_root__finalizable_ptr := null;
            procedure test_jwa_cxa4032__test_block__B608b___clean is
            begin
               system__soft_links__abort_defer.all;
               $system__finalization_implementation__finalize_list (
                 F613b);
               $system__secondary_stack__ss_release (M615b);
               system__soft_links__abort_undefer.all;
               return;
            end test_jwa_cxa4032__test_block__B608b___clean;
         begin
            type test_jwa_cxa4032__test_block__B608b__A610b is access
              all jwa__strings__string_8;
            freeze test_jwa_cxa4032__test_block__B608b__A610b []
            R611b : test_jwa_cxa4032__test_block__B608b__A610b :=
              jwa__strings.jwa__strings__create__2 ("XXX")'reference;
            $system__finalization_implementation__deep_tag_attach (
              F613b, R611b.all'address, 1);
            E614b := not (jwa__strings__Oeq (tc_unb_string, R611b.all));
         at end
            test_jwa_cxa4032__test_block__B608b___clean;
         end B608b;
         if E614b then

-- 448:          Report.Failed("Incorrect results from Tail - 5");
            report.report__failed ("Incorrect results from Tail - 5");

-- 449:       end if;
         end if;

-- 450:

-- 451:

-- 452:    exception
      exception

-- 453:       when E : others =>
         when others =>
            system__soft_links__abort_undefer.all;
            B627b : declare
               e : ada__exceptions__exception_occurrence;
            begin
               $ada__exceptions__save_occurrence (e,
                 system__soft_links__get_current_excep.all.all);

-- 454:          Report.Failed ("Exception raised in Test_Block: " &
               B618b : declare
                  M626b : system__secondary_stack__mark_id :=
                    $system__secondary_stack__ss_mark;
                  procedure
                    test_jwa_cxa4032__test_block__E617b__B618b___clean is
                  begin
                     $system__secondary_stack__ss_release (M626b);
                     return;
                  end
                    test_jwa_cxa4032__test_block__E617b__B618b___clean;
               begin

-- 455:                         Exception_Information (E));
                  type
                    test_jwa_cxa4032__test_block__E617b__B618b__A620b
                    is access all string;
                  freeze
                    test_jwa_cxa4032__test_block__E617b__B618b__A620b []
                  R621b :
                    test_jwa_cxa4032__test_block__E617b__B618b__A620b :=
                    ada__exceptions__exception_information (e)
                    'reference;
                  L623b : constant integer := R621b.all'length;
                  L624b : constant integer := 32 + L623b;
                  subtype
                    test_jwa_cxa4032__test_block__E617b__B618b__TS625bS is
                    string (1 .. 1 + (L624b - 1));
                  S625b : string (1 .. 1 + (L624b - 1));
                  $system__concat_2__str_concat_2 (S625b,
                    "Exception raised in Test_Block: ", R621b.all);
                  report.report__failed (S625b);
               at end
                  test_jwa_cxa4032__test_block__E617b__B618b___clean;

-- 456:    end Test_Block;
               end B618b;
            end B627b;
      end;
   at end
      test_jwa_cxa4032__test_block___clean;
   end test_block;

-- 457:

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

-- 459:

-- 460: end Test_Jwa_CXA4032;
   return;
end test_jwa_cxa4032;
