ca11b02.a

来自「linux下编程用 编译软件」· A 代码 · 共 170 行

A
170
字号
-- CA11B02.A----                             Grant of Unlimited Rights----     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained --     unlimited rights in the software and documentation contained herein.--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making --     this public release, the Government intends to confer upon all --     recipients unlimited rights  equal to those held by the Government.  --     These rights include rights to use, duplicate, release or disclose the --     released technical data and computer software in whole or in part, in --     any manner and for any purpose whatsoever, and to have or permit others --     to do so.----                                    DISCLAIMER----     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED --     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE --     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A--     PARTICULAR PURPOSE OF SAID MATERIAL.--*---- OBJECTIVE:--      Check that a type derived in a client of a public child inherits --      primitive operations from parent.  ---- TEST DESCRIPTION:--      Declare a root record type with discriminant in a package --      specification. Declare a primitive subprogram for the type --      (foundation code).----      Add a public child to the above package.  Derive a new type --      with constraint to the discriminant record type from the parent --      package.  Declare a new primitive subprogram to write to the child --      derived type.----      In the main program, "with" the child.  Derive a new type using the --      record type from the child package.  Access the inherited operations --      from both parent and child packages.---- TEST FILES:--      This test depends on the following foundation code:----         FA11B00.A------ CHANGE HISTORY:--      06 Dec 94   SAIC    ACVC 2.0----!-- Child package of FA11B00.package FA11B00.CA11B02_0 is     -- Application_Two_Widget-- This public child declares a derived type from its parent.  It -- represents processing of widgets in a window system.     -- Dimension of app2_widget is limited to 5000 pixels.   type App2_Widget is new App1_Widget (Maximum_Size => 5000);                            -- Derived record of parent type.   -- Inherits procedure App1_Widget_Specific_Oper from parent.   -- Primitive operation of type App2_Widget.   procedure App2_Widget_Specific_Op1 (The_Widget : in out App2_Widget;                                           S          : in     Widget_Size);        -- Primitive operation of type App2_Widget.   procedure App2_Widget_Specific_Op2 (The_Widget : in out App2_Widget;                                           Loc        : in     Widget_Location);end FA11B00.CA11B02_0;      -- Application_Two_Widget--=======================================================================--package body FA11B00.CA11B02_0 is     -- Application_Two_Widget   procedure App2_Widget_Specific_Op1 (The_Widget : in out App2_Widget;                                           S          : in     Widget_Size) is   begin      The_Widget.Size := S;   end App2_Widget_Specific_Op1;               --==============================================--   procedure App2_Widget_Specific_Op2 (The_Widget : in out App2_Widget;                                           Loc        : in     Widget_Location) is   begin      The_Widget.Location := Loc;   end App2_Widget_Specific_Op2;end FA11B00.CA11B02_0;     -- Application_Two_Widget--=======================================================================--with FA11B00.CA11B02_0;      -- Application_Two_Widget                             -- implicitly with Application_One_Widget.with Report;procedure CA11B02 is                                package Application_One_Widget renames FA11B00;   package Application_Two_Widget renames FA11B00.CA11B02_0;   use Application_One_Widget ;   use Application_Two_Widget ;   type Emulator_Widget is new App2_Widget;   -- Derived record of                                               -- parent type.   White_Widget, Amber_Widget : Emulator_Widget;begin   Report.Test ("CA11B02", "Check that a type derived in client of a " &                "public child inherits primitive operations from parent");   App1_Widget_Specific_Oper (C => White, L => "Line Editor    ",                              The_Widget => White_Widget, I => 10);                                  -- Inherited from Application_One_Widget.   If White_Widget.Color /= White or     White_Widget.Id /= Widget_ID (Report.Ident_Int (10)) or     White_Widget.Label  /= "Line Editor    "    then      Report.Failed ("Incorrect result for White_Widget");   end if;   -- perform an App2_Widget specific operation.   App2_Widget_Specific_Op1 (White_Widget, S => (100, 200));   If White_Widget.Size.X_Length /= 100 or     White_Widget.Size.Y_Length /= 200   then      Report.Failed ("Incorrect size for White_Widget");   end if;   App1_Widget_Specific_Oper (Amber_Widget, 5, Amber, "Screen Editor  ");                                    -- Inherited from Application_One_Widget.   -- perform an App2_Widget specific operations.   App2_Widget_Specific_Op1 (S => (1024,100), The_Widget => Amber_Widget);     App2_Widget_Specific_Op2 (Amber_Widget, (1024, 760));   If Amber_Widget.Color /= Amber or     Amber_Widget.Id /= Widget_ID (Report.Ident_Int (5)) or      Amber_Widget.Label  /= "Screen Editor  " or     Amber_Widget.Size /= (1024,100) or      Amber_Widget.Location.X_Location /= 1024 or     Amber_Widget.Location.Y_Location /= 760   then      Report.Failed ("Incorrect result for Amber_Widget");   end if;   Report.Result;end CA11B02;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?