cxf3a05.a
来自「linux下编程用 编译软件」· A 代码 · 共 267 行
A
267 行
-- CXF3A05.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 Function Image produces correct results when provided-- non-default parameters for Currency, Fill, Separator, and -- Radix_Mark at either the time of package Decimal_Output instantiation,-- or in a call to Image. Check non-default parameters that are -- appropriate for foreign currency representations.---- TEST DESCRIPTION:-- This test is structured using tables of data, consisting of-- numerical values, picture strings, and expected image-- result strings. These data tables are found in package FXF3A00.-- -- The results of the Image function, resulting from several different-- instantiations of Decimal_Output, are compared with expected-- edited output string results. The primary focus of this test is to-- examine the effect of non-default parameters, provided during the -- instantiation of package Decimal_Output, or provided as part of a-- call to Function Image (that resulted from an instantiation of-- Decimal_Output that used default parameters). The non-default-- parameters provided correspond to foreign currency representations.-- -- For each picture string/decimal data combination examined, two-- evaluations of Image are performed. These correspond to the two-- methods of providing the appropriate non-default parameters described-- above. Both forms of Function Image should produce the same expected-- edited output string.-- -- TEST FILES:-- The following files comprise this test:---- FXF3A00.A (foundation code)-- => CXF3A05.A---- -- CHANGE HISTORY:-- 26 JAN 95 SAIC Initial prerelease version.-- 17 FEB 97 PWB.CTA Correct array indices for Foreign_Strings array-- references.--!with FXF3A00;with Ada.Text_IO.Editing;with Report;procedure CXF3A05 isbegin Report.Test ("CXF3A05", "Check that Function Image produces " & "correct results when provided non-default " & "parameters for Currency, Fill, Separator, " & "and Radix_Mark, appropriate to foreign " & "currency representations"); Test_Block: declare use Ada.Text_IO; -- Instantiate the Decimal_Output generic package for the several -- combinations of Default_Currency, Default_Fill, Default_Separator, -- and Default_Radix_Mark. package Pack_Def is -- Uses default parameter values. new Editing.Decimal_Output(FXF3A00.Decimal_Type_2DP); package Pack_FF is new Editing.Decimal_Output(FXF3A00.Decimal_Type_2DP, Default_Currency => "FF", Default_Fill => '*', Default_Separator => '.', Default_Radix_Mark => ','); package Pack_DM is new Editing.Decimal_Output(FXF3A00.Decimal_Type_2DP, Default_Currency => "DM", Default_Fill => '*', Default_Separator => ',', Default_Radix_Mark => '.'); package Pack_CHF is new Editing.Decimal_Output(FXF3A00.Decimal_Type_2DP, Default_Currency => "CHF", Default_Fill => '*', Default_Separator => ',', Default_Radix_Mark => '.'); TC_Picture : Editing.Picture; TC_Start_Loop : constant := 11; TC_End_Loop : constant := TC_Start_Loop + -- 20 FXF3A00.Number_Of_Foreign_Strings - 1; begin -- In the case of each particular type of foreign string examined, -- two versions of Function Image are examined. First, a version of -- the function that originated from an instantiation of Decimal_Output -- with non-default parameters is checked. This version of Image is -- called making use of default parameters in the actual function call. -- In addition, a version of Function Image is checked that resulted -- from an instantiation of Decimal_Output using default parameters, -- but which uses non-default parameters in the function call. for i in TC_Start_Loop..TC_End_Loop loop -- Create the picture object from the picture string. TC_Picture := Editing.To_Picture (FXF3A00.Foreign_Strings(i - TC_Start_Loop + 1).all); -- Based on the ordering of the specific foreign picture strings -- in the FXF3A00.Foreign_Strings table, the following conditional -- is used to determine which type of currency is being examined -- as the loop executes. if i < TC_Start_Loop + FXF3A00.Number_Of_FF_Strings then -- (11-14) -- Process the FF picture strings. -- Check the result of Function Image from an instantiation -- of Decimal_Output that provided non-default actual -- parameters at the time of package instantiation, and uses -- default parameters in the call of Image. if Pack_FF.Image(Item => FXF3A00.Data_With_2DP(i), Pic => TC_Picture) /= FXF3A00.Edited_Output(i).all then Report.Failed("Incorrect output from Function Image " & "from package instantiated with FF " & "related parameters, using picture string " & FXF3A00.Foreign_Strings (i - TC_Start_Loop + 1).all); end if; -- Check the result of Function Image that originated from -- an instantiation of Decimal_Output where default parameters -- were used at the time of package Instantiation, but where -- non-default parameters are provided in the call of Image. if Pack_Def.Image(Item => FXF3A00.Data_With_2DP(i), Pic => TC_Picture, Currency => "FF", Fill => '*', Separator => '.', Radix_Mark => ',') /= FXF3A00.Edited_Output(i).all then Report.Failed("Incorrect output from Function Image " & "from package instantiated with default " & "parameters, using picture string " & FXF3A00.Foreign_Strings (i - TC_Start_Loop + 1).all & ", and FF related parameters in call to Image"); end if; elsif i < TC_Start_Loop + -- (15-19) FXF3A00.Number_Of_FF_Strings + FXF3A00.Number_Of_DM_Strings then -- Process the DM picture strings. -- Non-default instantiation parameters, default function call -- parameters. if Pack_DM.Image(Item => FXF3A00.Data_With_2DP(i), Pic => TC_Picture) /= FXF3A00.Edited_Output(i).all then Report.Failed("Incorrect output from Function Image " & "from package instantiated with DM " & "related parameters, using picture string " & FXF3A00.Foreign_Strings (i - TC_Start_Loop + 1).all); end if; -- Default instantiation parameters, non-default function call -- parameters. if Pack_Def.Image(Item => FXF3A00.Data_With_2DP(i), Pic => TC_Picture, Currency => "DM", Fill => '*', Separator => ',', Radix_Mark => '.') /= FXF3A00.Edited_Output(i).all then Report.Failed("Incorrect output from Function Image " & "from package instantiated with default " & "parameters, using picture string " & FXF3A00.Foreign_Strings (i - TC_Start_Loop + 1).all & ", and DM related parameters in call to Image"); end if; else -- (i=20) -- Process the CHF string. -- Non-default instantiation parameters, default function call -- parameters. if Pack_CHF.Image(FXF3A00.Data_With_2DP(i), TC_Picture) /= FXF3A00.Edited_Output(i).all then Report.Failed("Incorrect output from Function Image " & "from package instantiated with CHF " & "related parameters, using picture string " & FXF3A00.Foreign_Strings (i - TC_Start_Loop + 1).all); end if; -- Default instantiation parameters, non-default function call -- parameters. if Pack_Def.Image(FXF3A00.Data_With_2DP(i), TC_Picture, "CHF", '*', ',', '.') /= FXF3A00.Edited_Output(i).all then Report.Failed("Incorrect output from Function Image " & "from package instantiated with default " & "parameters, using picture string " & FXF3A00.Foreign_Strings (i - TC_Start_Loop + 1).all & ", and CHF related parameters in call to Image"); end if; end if; end loop; exception when others => Report.Failed ("Exception raised in Test_Block"); end Test_Block; Report.Result;end CXF3A05;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?