URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [ada/] [acats/] [tests/] [cxf/] [cxf3004.a] - Rev 720
Compare with Previous | Blame | View Log
-- CXF3004.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 statically identifiable picture strings can be used-- in conjunction with function Image to produce output strings-- appropriate to foreign currency representations.---- Check that statically identifiable picture strings will cause-- function Image to raise Layout_Error under the appropriate-- conditions.---- TEST DESCRIPTION:-- This test defines several picture strings that are statically-- identifiable, (i.e., Pic : Picture := To_Picture("..."); ).-- These picture strings are used in conjunction with decimal data-- as parameters in calls to function Image.------ CHANGE HISTORY:-- 11 Apr 96 SAIC Initial release for 2.1.----!with Report;with Ada.Text_IO.Editing;with Ada.Exceptions;procedure CXF3004 isbeginReport.Test ("CXF3004", "Check that statically identifiable " &"picture strings will cause function Image " &"to raise Layout_Error under appropriate " &"conditions");Test_Block:declareuse Ada.Exceptions;use Ada.Text_IO.Editing;FF_Currency : constant String := "FF";DM_Currency : constant String := "DM";FF_Separator : constant Character := '.';DM_Separator : constant Character := ',';FF_Radix : constant Character := ',';DM_Radix : constant Character := '.';Blank_Fill : constant Character := ' ';Star_Fill : constant Character := '*';-- Define a decimal data type, and instantiate the Decimal_Output-- generic package for the data type.type Decimal_Data_Type is delta 0.01 digits 16;package Image_IO isnew Decimal_Output(Num => Decimal_Data_Type,Default_Currency => "$",Default_Fill => Star_Fill,Default_Separator => Default_Separator,Default_Radix_Mark => DM_Radix);-- The following decimal data items are used with picture strings-- in evaluating use of foreign currency symbols.Dec_Data_1 : Decimal_Data_Type := 123456.78;Dec_Data_2 : Decimal_Data_Type := 32.10;Dec_Data_3 : Decimal_Data_Type := -1234.57;Dec_Data_4 : Decimal_Data_Type := 123456.78;Dec_Data_5 : Decimal_Data_Type := 12.34;Dec_Data_6 : Decimal_Data_Type := 12.34;Dec_Data_7 : Decimal_Data_Type := 12345.67;-- Statically identifiable picture strings.-- These strings are used in conjunction with non-default values-- for Currency string, Radix mark, and Separator in calls to-- function Image.Picture_1 : Picture := To_Picture("-###**_***_**9.99"); -- FFPicture_2 : Picture := To_Picture("###z_ZZ9.99"); -- FFPicture_3 : Picture := To_Picture("<<<<_<<<.<<###>"); -- DMPicture_4 : Picture := To_Picture("-$_$$$_$$$_$$9.99"); -- DMPicture_5 : Picture := To_Picture("$Zz9.99"); -- DMPicture_6 : Picture := To_Picture("$$$9.99"); -- DMPicture_7 : Picture := To_Picture("###_###_##9.99"); -- CHF-- The following ten edited output strings correspond to the ten-- foreign currency picture strings.Output_1 : constant String := " FF***123.456,78";Output_2 : constant String := " FF 32,10";Output_3 : constant String := " (1,234.57DM )";Output_4 : constant String := " DM123,456.78";Output_5 : constant String := "DM 12.34";Output_6 : constant String := " DM12.34";Output_7 : constant String := " CHF12,345.67";begin-- Check the results of function Image, using the picture strings-- constructed above, in creating foreign currency edited output-- strings.if Image_IO.Image(Item => Dec_Data_1,Pic => Picture_1,Currency => FF_Currency,Fill => Star_Fill,Separator => FF_Separator,Radix_Mark => FF_Radix) /= Output_1thenReport.Failed("Incorrect result from Fn. Image using Picture_1");end if;if Image_IO.Image(Item => Dec_Data_2,Pic => Picture_2,Currency => FF_Currency,Fill => Blank_Fill,Separator => FF_Separator,Radix_Mark => FF_Radix) /= Output_2thenReport.Failed("Incorrect result from Fn. Image using Picture_2");end if;if Image_IO.Image(Item => Dec_Data_3,Pic => Picture_3,Currency => DM_Currency,Fill => Blank_Fill,Separator => DM_Separator,Radix_Mark => DM_Radix) /= Output_3thenReport.Failed("Incorrect result from Fn. Image using Picture_3");end if;if Image_IO.Image(Item => Dec_Data_4,Pic => Picture_4,Currency => DM_Currency,Fill => Blank_Fill,Separator => DM_Separator,Radix_Mark => DM_Radix) /= Output_4thenReport.Failed("Incorrect result from Fn. Image using Picture_4");end if;if Image_IO.Image(Item => Dec_Data_5,Pic => Picture_5,Currency => DM_Currency,Fill => Blank_Fill,Separator => DM_Separator,Radix_Mark => DM_Radix) /= Output_5thenReport.Failed("Incorrect result from Fn. Image using Picture_5");end if;if Image_IO.Image(Item => Dec_Data_6,Pic => Picture_6,Currency => DM_Currency,Fill => Blank_Fill,Separator => DM_Separator,Radix_Mark => DM_Radix) /= Output_6thenReport.Failed("Incorrect result from Fn. Image using Picture_6");end if;if Image_IO.Image(Item => Dec_Data_7,Pic => Picture_7,Currency => "CHF",Fill => Blank_Fill,Separator => ',',Radix_Mark => '.') /= Output_7thenReport.Failed("Incorrect result from Fn. Image using Picture_7");end if;-- The following calls of Function Image, using the specific-- decimal values and picture strings provided, will cause-- a Layout_Error to be raised.-- Note: The data and the picture strings used in the following-- evaluations are not themselves erroneous, but when used in-- combination will cause Layout_Error to be raised.Exception_Block_1 :declareErroneous_Data_1 : Decimal_Data_Type := 12.34;Erroneous_Picture_1 : Picture := To_Picture("9.99");N : constant Natural := Image_IO.Length(Erroneous_Picture_1);TC_String : String(1..N);beginTC_String := Image_IO.Image(Erroneous_Data_1, Erroneous_Picture_1);Report.Failed("Layout_Error not raised by combination of " &"Erroneous_Picture_1 and Erroneous_Data_1");Report.Comment("Should never be printed: " & TC_String);exceptionwhen Ada.Text_IO.Layout_Error => null; -- OK, expected exception.when The_Error : others =>Report.Failed("The following exception was incorrectly raised in " &"Exception_Block_1: " & Exception_Name(The_Error));end Exception_Block_1;Exception_Block_2 :declareErroneous_Data_2 : Decimal_Data_Type := -12.34;Erroneous_Picture_2 : Picture := To_Picture("99.99");N : constant Natural := Image_IO.Length(Erroneous_Picture_2);TC_String : String(1..N);beginTC_String := Image_IO.Image(Erroneous_Data_2, Erroneous_Picture_2);Report.Failed("Layout_Error not raised by combination of " &"Erroneous_Picture_2 and Erroneous_Data_2");Report.Comment("Should never be printed: " & TC_String);exceptionwhen Ada.Text_IO.Layout_Error => null; -- OK, expected exception.when The_Error : others =>Report.Failed("The following exception was incorrectly raised in " &"Exception_Block_2: " & Exception_Name(The_Error));end Exception_Block_2;exceptionwhen The_Error : others =>Report.Failed("The following exception was raised in the " &"Test_Block: " & Exception_Name(The_Error));end Test_Block;Report.Result;end CXF3004;
