--  Copyright 2004, 2007, 2008, 2009, 2010, 2011
--  Free Software Foundation, Inc.
--
--  This program is free software; you can redistribute it and/or modify
--  it under the terms of the GNU General Public License as published by
--  the Free Software Foundation; either version 3 of the License, or
--  (at your option) any later version.
--
--  This program is distributed in the hope that it will be useful,
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--  GNU General Public License for more details.
--
--  You should have received a copy of the GNU General Public License
--  along with this program.  If not, see <http://www.gnu.org/licenses/>.

with System;

procedure Fixed_Points is

   ------------
   -- Test 1 --
   ------------

   --  Fixed point subtypes

   type Base_Fixed_Point_Type is
     delta 1.0 / 16.0
       range (System.Min_Int / 2) * 1.0 / 16.0 ..
       (System.Max_Int / 2) * 1.0 / 16.0;

   subtype Fixed_Point_Subtype is
     Base_Fixed_Point_Type range -50.0 .. 50.0;

   type New_Fixed_Point_Type is
     new Base_Fixed_Point_Type range -50.0 .. 50.0;

   Base_Object            : Base_Fixed_Point_Type := -50.0;
   Subtype_Object         : Fixed_Point_Subtype := -50.0;
   New_Type_Object        : New_Fixed_Point_Type := -50.0;


   ------------
   -- Test 2 --
   ------------

   --  Overprecise delta

   Overprecise_Delta : constant := 0.135791357913579;
   --  delta whose significant figures cannot be stored into a long.

   type Overprecise_Fixed_Point is
     delta Overprecise_Delta range 0.0 .. 200.0;
   for Overprecise_Fixed_Point'Small use Overprecise_Delta;

   Overprecise_Object : Overprecise_Fixed_Point :=
     Overprecise_Fixed_Point'Small;

begin
   Base_Object := 1.0/16.0;   -- Set breakpoint here
   Subtype_Object := 1.0/16.0;
   New_Type_Object := 1.0/16.0;
   Overprecise_Object := Overprecise_Fixed_Point'Small * 2;
end Fixed_Points;
