(root)/
gettext-0.22.4/
gettext-tools/
gnulib-tests/
test-fabs.h
       1  /* Test of fabs*() function family.
       2     Copyright (C) 2012-2023 Free Software Foundation, Inc.
       3  
       4     This program is free software: you can redistribute it and/or modify
       5     it under the terms of the GNU General Public License as published by
       6     the Free Software Foundation, either version 3 of the License, or
       7     (at your option) any later version.
       8  
       9     This program is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      12     GNU General Public License for more details.
      13  
      14     You should have received a copy of the GNU General Public License
      15     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  static void
      18  test_function (void)
      19  {
      20    volatile DOUBLE x;
      21    DOUBLE y;
      22  
      23    /* Signed zero.  */
      24    x = L_(0.0);
      25    y = FABS (x);
      26    ASSERT (y == L_(0.0));
      27    ASSERT (!signbit (y));
      28  
      29    x = MINUS_ZERO;
      30    y = FABS (x);
      31    ASSERT (y == L_(0.0));
      32    ASSERT (!signbit (y));
      33  
      34    /* Randomized tests.  */
      35    {
      36      int i;
      37  
      38      for (i = 0; i < SIZEOF (RANDOM); i++)
      39        {
      40          x = L_(10.0) * RANDOM[i]; /* 0.0 <= x <= 10.0 */
      41          ASSERT (FABS (x) == x);
      42          ASSERT (FABS (- x) == x);
      43        }
      44    }
      45  }
      46  
      47  volatile DOUBLE x;
      48  DOUBLE y;