File: numberparsertest.cpp

package info (click to toggle)
aoflagger 3.4.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,960 kB
  • sloc: cpp: 83,076; python: 10,187; sh: 260; makefile: 178
file content (36 lines) | stat: -rw-r--r-- 1,603 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "../../util/numberparser.h"

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(number_parser, *boost::unit_test::label("util"))

BOOST_AUTO_TEST_CASE(to_double) {
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("1"), 1.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("1."), 1.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("1.000000"), 1.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("-1"), -1.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("-1.00000"), -1.0);

  BOOST_CHECK_CLOSE(NumberParser::ToDouble("3.14159265"), 3.14159265, 1e-5);
  BOOST_CHECK_CLOSE(NumberParser::ToDouble("0.00002"), 0.00002, 1e-5);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("234567"), 234567.0);
  BOOST_CHECK_CLOSE(NumberParser::ToDouble("234.567"), 234.567, 1e-5);

  BOOST_CHECK_EQUAL(NumberParser::ToDouble("0"), 0.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("0.0"), 0.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("-0.0"), 0.0);

  BOOST_CHECK_EQUAL(NumberParser::ToDouble("0.0e5"), 0.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("0.0e100"), 0.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("0.0e-100"), 0.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("0.0E5"), 0.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("0.0E100"), 0.0);
  BOOST_CHECK_EQUAL(NumberParser::ToDouble("0.0E-100"), 0.0);

  BOOST_CHECK_CLOSE(NumberParser::ToDouble("1.0e5"), 1.0e5, 1e-5);
  BOOST_CHECK_CLOSE(NumberParser::ToDouble("1.0e-5"), 1.0e-5, 1e-5);
  BOOST_CHECK_CLOSE(NumberParser::ToDouble("0.3e0"), 0.3, 1e-5);
  BOOST_CHECK_CLOSE(NumberParser::ToDouble("642.135e8"), 642.135e8, 1e-5);
}

BOOST_AUTO_TEST_SUITE_END()