(root)/
findutils-4.9.0/
gnulib-tests/
test-modf.c
       1  /* Test of modf() function.
       2     Copyright (C) 2010-2022 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  /* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
      18  
      19  #include <config.h>
      20  
      21  #include <math.h>
      22  
      23  #include "signature.h"
      24  SIGNATURE_CHECK (modf, double, (double, double *));
      25  
      26  #include <float.h>
      27  
      28  #include "macros.h"
      29  
      30  #define DOUBLE double
      31  #define L_(literal) literal
      32  #define MANT_DIG DBL_MANT_DIG
      33  #define MODF modf
      34  #define RANDOM randomd
      35  #include "test-modf.h"
      36  
      37  int
      38  main ()
      39  {
      40    /* A particular positive value.  */
      41    x = 5.972406760;
      42    y = modf (x, &z);
      43    ASSERT (y >= 0.972406759 && y <= 0.972406761);
      44    ASSERT (z == 5.0);
      45  
      46    /* A particular negative value.  */
      47    x = -5.972406760;
      48    y = modf (x, &z);
      49    ASSERT (y >= -0.972406761 && y <= -0.972406759);
      50    ASSERT (z == -5.0);
      51  
      52    test_function ();
      53  
      54    return 0;
      55  }