| #include "fast_float/fast_float.h" |
| |
| #include <cctype> |
| #include <cstdio> |
| #include <iostream> |
| #include <limits> |
| #include <stdexcept> |
| #include <string> |
| #include <system_error> |
| #include <vector> |
| |
| #if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__) || \ |
| defined(sun) || defined(__sun) |
| // Anything at all that is related to cygwin, msys and so forth will |
| // always use this fallback because we cannot rely on it behaving as normal |
| // gcc. |
| #include <locale> |
| #include <sstream> |
| |
| // workaround for CYGWIN |
| double cygwin_strtod_l(char const *start, char **end) { |
| double d; |
| std::stringstream ss; |
| ss.imbue(std::locale::classic()); |
| ss << start; |
| ss >> d; |
| if (ss.fail()) { |
| *end = nullptr; |
| } |
| if (ss.eof()) { |
| ss.clear(); |
| } |
| auto nread = ss.tellg(); |
| *end = const_cast<char *>(start) + nread; |
| return d; |
| } |
| |
| float cygwin_strtof_l(char const *start, char **end) { |
| float d; |
| std::stringstream ss; |
| ss.imbue(std::locale::classic()); |
| ss << start; |
| ss >> d; |
| if (ss.fail()) { |
| *end = nullptr; |
| } |
| if (ss.eof()) { |
| ss.clear(); |
| } |
| auto nread = ss.tellg(); |
| *end = const_cast<char *>(start) + nread; |
| return d; |
| } |
| #endif |
| |
| inline void Assert(bool Assertion) { |
| #if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__) || \ |
| defined(sun) || defined(__sun) |
| if (!Assertion) { |
| std::cerr << "Omitting hard failure on msys/cygwin/sun systems."; |
| } |
| #else |
| if (!Assertion) { |
| throw std::runtime_error("bug"); |
| } |
| #endif |
| } |
| |
| template <typename T> std::string to_string(T d) { |
| std::string s(64, '\0'); |
| auto written = std::snprintf(&s[0], s.size(), "%.*e", |
| std::numeric_limits<T>::max_digits10 - 1, d); |
| s.resize(size_t(written)); |
| return s; |
| } |
| |
| template <typename T> bool test() { |
| std::string input = |
| "0.1 1e1000 100000 3.14159265359 -1e-500 001 1e01 1e0000001 -inf"; |
| std::vector<T> answers = {T(0.1), |
| std::numeric_limits<T>::infinity(), |
| 100000, |
| T(3.14159265359), |
| -0.0, |
| 1, |
| 10, |
| 10, |
| -std::numeric_limits<T>::infinity()}; |
| std::vector<std::errc> expected_ec = {std::errc(), |
| std::errc::result_out_of_range, |
| std::errc(), |
| std::errc(), |
| std::errc::result_out_of_range, |
| std::errc(), |
| std::errc(), |
| std::errc(), |
| std::errc()}; |
| char const *begin = input.data(); |
| char const *end = input.data() + input.size(); |
| for (size_t i = 0; i < answers.size(); i++) { |
| T result_value; |
| while ((begin < end) && (std::isspace(*begin))) { |
| begin++; |
| } |
| auto result = fast_float::from_chars(begin, end, result_value); |
| if (result.ec != expected_ec[i]) { |
| printf("parsing %.*s\n", int(end - begin), begin); |
| std::cerr << " I could not parse " << std::endl; |
| return false; |
| } |
| if (result_value != answers[i]) { |
| printf("parsing %.*s\n", int(end - begin), begin); |
| std::cerr << " Mismatch " << std::endl; |
| return false; |
| } |
| begin = result.ptr; |
| } |
| if (begin != end) { |
| std::cerr << " bad ending " << std::endl; |
| return false; |
| } |
| return true; |
| } |
| |
| template <typename T> void strtod_from_string(std::string const &st, T &d); |
| |
| template <> void strtod_from_string(std::string const &st, double &d) { |
| char *pr = (char *)st.c_str(); |
| #if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__) || \ |
| defined(sun) || defined(__sun) |
| d = cygwin_strtod_l(pr, &pr); |
| #elif defined(_WIN32) |
| static _locale_t c_locale = _create_locale(LC_ALL, "C"); |
| d = _strtod_l(st.c_str(), &pr, c_locale); |
| #else |
| static locale_t c_locale = newlocale(LC_ALL_MASK, "C", NULL); |
| d = strtod_l(st.c_str(), &pr, c_locale); |
| #endif |
| if (pr == st.c_str()) { |
| throw std::runtime_error("bug in strtod_from_string"); |
| } |
| } |
| |
| template <> void strtod_from_string(std::string const &st, float &d) { |
| char *pr = (char *)st.c_str(); |
| #if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__) || \ |
| defined(sun) || defined(__sun) |
| d = cygwin_strtof_l(st.c_str(), &pr); |
| #elif defined(_WIN32) |
| static _locale_t c_locale = _create_locale(LC_ALL, "C"); |
| d = _strtof_l(st.c_str(), &pr, c_locale); |
| #else |
| static locale_t c_locale = newlocale(LC_ALL_MASK, "C", NULL); |
| d = strtof_l(st.c_str(), &pr, c_locale); |
| #endif |
| if (pr == st.c_str()) { |
| throw std::runtime_error("bug in strtod_from_string"); |
| } |
| } |
| |
| template <typename T> bool partow_test() { |
| // credit: |
| // https://github.com/ArashPartow/strtk/blob/master/strtk_tokenizer_cmp.cpp#L568 |
| // MIT license |
| std::string const strint_list[] = { |
| "9007199254740993", |
| "9007199254740994", |
| "9007199254740995", |
| "0", |
| "1", |
| "2", |
| "3", |
| "4", |
| "5", |
| "6", |
| "7", |
| "8", |
| "9", |
| "917049", |
| "4931205", |
| "6768064", |
| "6884243", |
| "5647132", |
| "7371203", |
| "-8629878", |
| "4941840", |
| "4543268", |
| "1075600", |
| "290", |
| "823", |
| "111", |
| "715", |
| "-866", |
| "367", |
| "666", |
| "-706", |
| "850", |
| "-161", |
| "9922547", |
| "6960207", |
| "1883152", |
| "2300759", |
| "-279294", |
| "4187292", |
| "3699841", |
| "8386395", |
| "-1441129", |
| "-887892", |
| "-635422", |
| "9742573", |
| "2326186", |
| "-5903851", |
| "5648486", |
| "3057647", |
| "2980079", |
| "2957468", |
| "7929158", |
| "1925615", |
| "879", |
| "130", |
| "292", |
| "705", |
| "817", |
| "446", |
| "576", |
| "750", |
| "523", |
| "-527", |
| "4365041", |
| "5624958", |
| "8990205", |
| "2652177", |
| "3993588", |
| "-298316", |
| "2901599", |
| "3887387", |
| "-5202979", |
| "1196268", |
| "5968501", |
| "7619928", |
| "3565643", |
| "1885272", |
| "-749485", |
| "2961381", |
| "2982579", |
| "2387454", |
| "4250081", |
| "5958205", |
| "00000", |
| "00001", |
| "00002", |
| "00003", |
| "00004", |
| "00005", |
| "00006", |
| "00007", |
| "00008", |
| "00009", |
| "4907034", |
| "2592882", |
| "3269234", |
| "549815", |
| "6256292", |
| "9721039", |
| "-595225", |
| "5587491", |
| "4596297", |
| "-3885009", |
| "673", |
| "-899", |
| "174", |
| "354", |
| "870", |
| "147", |
| "898", |
| "-510", |
| "369", |
| "859", |
| "6518423", |
| "5149762", |
| "8834164", |
| "-8085586", |
| "3233120", |
| "8166948", |
| "4172345", |
| "6735549", |
| "-934295", |
| "9481935", |
| "-430406", |
| "6932717", |
| "4087292", |
| "4047263", |
| "3236400", |
| "-3863050", |
| "4312079", |
| "6956261", |
| "5689446", |
| "3871332", |
| "535", |
| "691", |
| "326", |
| "-409", |
| "704", |
| "-568", |
| "301", |
| "951", |
| "121", |
| "384", |
| "4969414", |
| "9378599", |
| "7971781", |
| "5380630", |
| "5001363", |
| "1715827", |
| "6044615", |
| "9118925", |
| "9956168", |
| "-8865496", |
| "5962464", |
| "7408980", |
| "6646513", |
| "-634564", |
| "4188330", |
| "9805948", |
| "5625691", |
| "7641113", |
| "-4212929", |
| "7802447", |
| "0", |
| "1", |
| "2", |
| "3", |
| "4", |
| "5", |
| "6", |
| "7", |
| "8", |
| "9", |
| "2174248", |
| "7449361", |
| "9896659", |
| "-25961", |
| "1706598", |
| "2412368", |
| "-4617035", |
| "6314554", |
| "2225957", |
| "7521434", |
| "-9530566", |
| "3914164", |
| "2394759", |
| "7157744", |
| "9919392", |
| "6406949", |
| "-744004", |
| "9899789", |
| "8380325", |
| "-1416284", |
| "3402833", |
| "2150043", |
| "5191009", |
| "8979538", |
| "9565778", |
| "3750211", |
| "7304823", |
| "2829359", |
| "6544236", |
| "-615740", |
| "363", |
| "-627", |
| "129", |
| "656", |
| "135", |
| "113", |
| "381", |
| "646", |
| "198", |
| "38", |
| "8060564", |
| "-176752", |
| "1184717", |
| "-666343", |
| "-1273292", |
| "-485827", |
| "6241066", |
| "6579411", |
| "8093119", |
| "7481306", |
| "-4924485", |
| "7467889", |
| "9813178", |
| "7927100", |
| "3614859", |
| "7293354", |
| "9232973", |
| "4323115", |
| "1133911", |
| "9511638", |
| "4443188", |
| "2289448", |
| "5639726", |
| "9073898", |
| "8540394", |
| "5389992", |
| "1397726", |
| "-589230", |
| "1017086", |
| "1852330", |
| "-840", |
| "267", |
| "201", |
| "533", |
| "-675", |
| "494", |
| "315", |
| "706", |
| "-920", |
| "784", |
| "9097353", |
| "6002251", |
| "-308780", |
| "-3830169", |
| "4340467", |
| "2235284", |
| "3314444", |
| "1085967", |
| "4152107", |
| "5431117", |
| "-0000", |
| "-0001", |
| "-0002", |
| "-0003", |
| "-0004", |
| "-0005", |
| "-0006", |
| "-0007", |
| "-0008", |
| "-0009", |
| "-444999", |
| "2136400", |
| "6925907", |
| "6990614", |
| "3588271", |
| "8422028", |
| "-4034772", |
| "5804039", |
| "-6740545", |
| "9381873", |
| "-924923", |
| "1652367", |
| "2302616", |
| "6776663", |
| "2567821", |
| "-248935", |
| "2587688", |
| "7076742", |
| "-6461467", |
| "1562896", |
| "-768116", |
| "2338768", |
| "9887307", |
| "9992184", |
| "2045182", |
| "2797589", |
| "9784597", |
| "9696554", |
| "5113329", |
| "1067216", |
| "-76247763", |
| "58169007", |
| "29408062", |
| "85342511", |
| "42092201", |
| "-95817703", |
| "-1912517", |
| "-26275135", |
| "54656606", |
| "-58188878", |
| "473", |
| "74", |
| "374", |
| "-64", |
| "266", |
| "715", |
| "937", |
| "-249", |
| "249", |
| "780", |
| "3907360", |
| "-23063423", |
| "59062754", |
| "83711047", |
| "-95221044", |
| "34894840", |
| "-38562139", |
| "-82018330", |
| "14226223", |
| "-10799717", |
| "8529722", |
| "88961903", |
| "25608618", |
| "-39988247", |
| "33228241", |
| "38598533", |
| "21161480", |
| "-33723784", |
| "8873948", |
| "96505557", |
| "-47385048", |
| "-79413272", |
| "-85904404", |
| "87791158", |
| "49194195", |
| "13051222", |
| "57773302", |
| "31904423", |
| "3142966", |
| "27846156", |
| "7420011", |
| "-72376922", |
| "-68873971", |
| "23765361", |
| "4040725", |
| "-22359806", |
| "85777219", |
| "10099223", |
| "-90364256", |
| "-40158172", |
| "-7948696", |
| "-64344821", |
| "34404238", |
| "84037448", |
| "-85084788", |
| "-42078409", |
| "-56550310", |
| "96898389", |
| "-595829", |
| "-73166703", |
| "-0", |
| "-1", |
| "-2", |
| "-3", |
| "-4", |
| "-5", |
| "-6", |
| "-7", |
| "-8", |
| "-9", |
| "2147483647", |
| "31", |
| "2147483610", |
| "33", |
| "2147483573", |
| "37", |
| "2147483536", |
| "-82838342", |
| "64441808", |
| "43641062", |
| "-64419642", |
| "-44421934", |
| "75232413", |
| "-75773725", |
| "-89139509", |
| "12812089", |
| "-97633526", |
| "36090916", |
| "-57706234", |
| "17804655", |
| "4189936", |
| "-4100124", |
| "38803710", |
| "-39735126", |
| "-62397437", |
| "75801648", |
| "51302332", |
| "73433906", |
| "13015224", |
| "-12624818", |
| "91360377", |
| "11576319", |
| "-54467535", |
| "8892431", |
| "36319780", |
| "38832042", |
| "50172572", |
| "-317", |
| "109", |
| "-888", |
| "302", |
| "-463", |
| "716", |
| "916", |
| "665", |
| "826", |
| "513", |
| "42423473", |
| "41078812", |
| "40445652", |
| "-76722281", |
| "95092224", |
| "12075234", |
| "-4045888", |
| "-74396490", |
| "-57304222", |
| "-21726885", |
| "92038121", |
| "-31899682", |
| "21589254", |
| "-30260046", |
| "56000244", |
| "69686659", |
| "93327838", |
| "96882881", |
| "-91419389", |
| "77529147", |
| "43288506", |
| "1192435", |
| "-74095920", |
| "76756590", |
| "-31184683", |
| "-35716724", |
| "9451980", |
| "-63168350", |
| "62864002", |
| "26283194", |
| "37188395", |
| "29151634", |
| "99343471", |
| "-69450330", |
| "-55680090", |
| "-64957599", |
| "47577948", |
| "47107924", |
| "2490477", |
| "48633003", |
| "-82740809", |
| "-24122215", |
| "67301713", |
| "-63649610", |
| "75499016", |
| "82746620", |
| "17052193", |
| "4602244", |
| "-32721165", |
| "20837836", |
| "674", |
| "467", |
| "706", |
| "889", |
| "172", |
| "282", |
| "-795", |
| "188", |
| "87", |
| "153", |
| "64501793", |
| "53146328", |
| "5152287", |
| "-9674493", |
| "68105580", |
| "57245637", |
| "39740229", |
| "-74071854", |
| "86777268", |
| "86484437", |
| "-86962508", |
| "12644427", |
| "-62944073", |
| "59539680", |
| "43340539", |
| "30661534", |
| "20143968", |
| "-68183731", |
| "-48250926", |
| "42669063", |
| "000", |
| "001", |
| "002", |
| "003", |
| "004", |
| "005", |
| "006", |
| "007", |
| "008", |
| "009", |
| "2147483499", |
| "71", |
| "2147483462", |
| "73", |
| "2147483425", |
| "77", |
| "2147483388", |
| "87736852", |
| "-4444906", |
| "-48094147", |
| "54774735", |
| "54571890", |
| "-22473078", |
| "95053418", |
| "393654", |
| "-33229960", |
| "32276798", |
| "-48361110", |
| "44295939", |
| "-79813406", |
| "11630865", |
| "38544571", |
| "70972830", |
| "-9821748", |
| "-60965384", |
| "-13096675", |
| "-24569041", |
| "708", |
| "-467", |
| "-794", |
| "610", |
| "929", |
| "766", |
| "152", |
| "482", |
| "397", |
| "-191", |
| "97233152", |
| "51028396", |
| "-13796948", |
| "95437272", |
| "71352512", |
| "-83233730", |
| "-68517318", |
| "61832742", |
| "-42667174", |
| "-18002395", |
| "-92239407", |
| "12701336", |
| "-63830875", |
| "41514172", |
| "-5726049", |
| "18668677", |
| "69555144", |
| "-13737009", |
| "-22626233", |
| "-55078143", |
| "00", |
| "11", |
| "22", |
| "33", |
| "44", |
| "-00", |
| "-11", |
| "-22", |
| "-33", |
| "-44", |
| "000", |
| "111", |
| "222", |
| "333", |
| "444", |
| "-000", |
| "-111", |
| "-222", |
| "-333", |
| "-444", |
| "0000", |
| "1111", |
| "2222", |
| "3333", |
| "4444", |
| "-0000", |
| "-1111", |
| "-2222", |
| "-3333", |
| "-4444", |
| "00000", |
| "11111", |
| "22222", |
| "33333", |
| "44444", |
| "-00000", |
| "-11111", |
| "-22222", |
| "-33333", |
| "-44444", |
| "000000", |
| "111111", |
| "222222", |
| "333333", |
| "444444", |
| "-000000", |
| "-111111", |
| "-222222", |
| "-333333", |
| "-444444", |
| "0000000", |
| "1111111", |
| "2222222", |
| "3333333", |
| "4444444", |
| "-0000000", |
| "-1111111", |
| "-2222222", |
| "-3333333", |
| "-4444444", |
| "00000000", |
| "11111111", |
| "22222222", |
| "33333333", |
| "44444444", |
| "-00000000", |
| "-11111111", |
| "-22222222", |
| "-33333333", |
| "-44444444", |
| "000000000", |
| "111111111", |
| "222222222", |
| "333333333", |
| "444444444", |
| "-000000000", |
| "-111111111", |
| "-222222222", |
| "-333333333", |
| "-444444444", |
| "2147483351", |
| "51", |
| "2147483314", |
| "53", |
| "-2147483648", |
| "57", |
| "-2147483611", |
| "55", |
| "66", |
| "77", |
| "88", |
| "99", |
| "-55", |
| "-66", |
| "-77", |
| "-88", |
| "-99", |
| "555", |
| "666", |
| "777", |
| "888", |
| "999", |
| "-555", |
| "-666", |
| "-777", |
| "-888", |
| "-999", |
| "5555", |
| "6666", |
| "7777", |
| "8888", |
| "9999", |
| "-5555", |
| "-6666", |
| "-7777", |
| "-8888", |
| "-9999", |
| "55555", |
| "66666", |
| "77777", |
| "88888", |
| "99999", |
| "-55555", |
| "-66666", |
| "-77777", |
| "-88888", |
| "-99999", |
| "555555", |
| "666666", |
| "777777", |
| "888888", |
| "999999", |
| "-555555", |
| "-666666", |
| "-777777", |
| "-888888", |
| "-999999", |
| "5555555", |
| "6666666", |
| "7777777", |
| "8888888", |
| "9999999", |
| "-5555555", |
| "-6666666", |
| "-7777777", |
| "-8888888", |
| "-9999999", |
| "55555555", |
| "66666666", |
| "77777777", |
| "88888888", |
| "99999999", |
| "-55555555", |
| "-66666666", |
| "-77777777", |
| "-88888888", |
| "-99999999", |
| "555555555", |
| "666666666", |
| "777777777", |
| "888888888", |
| "999999999", |
| "-555555555", |
| "-666666666", |
| "-777777777", |
| "-888888888", |
| "-999999999", |
| "-2147483574", |
| "91", |
| "-2147483537", |
| "93", |
| "-2147483500", |
| "97", |
| "-2147483463", |
| "0000000011", |
| "0000000022", |
| "0000000033", |
| "0000000044", |
| "-000000011", |
| "-000000022", |
| "-000000033", |
| "-000000044", |
| "-000000088", |
| "0000000111", |
| "0000000222", |
| "0000000333", |
| "0000000444", |
| "-000000111", |
| "-000000222", |
| "-000000333", |
| "-000000444", |
| "-000000888", |
| "0000001111", |
| "0000002222", |
| "0000003333", |
| "0000004444", |
| "-000001111", |
| "-000002222", |
| "-000003333", |
| "-000004444", |
| "-000008888", |
| "0000011111", |
| "0000022222", |
| "0000033333", |
| "0000044444", |
| "-000011111", |
| "-000022222", |
| "-000033333", |
| "-000044444", |
| "-000088888", |
| "0000111111", |
| "0000222222", |
| "0000333333", |
| "0000444444", |
| "-000111111", |
| "-000222222", |
| "-000333333", |
| "-000444444", |
| "-000888888", |
| "0001111111", |
| "0002222222", |
| "0003333333", |
| "0004444444", |
| "-001111111", |
| "-002222222", |
| "-003333333", |
| "-004444444", |
| "-008888888", |
| "0011111111", |
| "0022222222", |
| "0033333333", |
| "0044444444", |
| "-011111111", |
| "-022222222", |
| "-033333333", |
| "-044444444", |
| "-088888888", |
| "0111111111", |
| "0222222222", |
| "0333333333", |
| "0444444444", |
| "-111111111", |
| "-222222222", |
| "-333333333", |
| "-444444444", |
| "-888888888", |
| "0000000055", |
| "0000000066", |
| "0000000077", |
| "0000000088", |
| "0000000099", |
| "-000000055", |
| "-000000066", |
| "-000000077", |
| "-000000099", |
| "0000000555", |
| "0000000666", |
| "0000000777", |
| "0000000888", |
| "0000000999", |
| "-000000555", |
| "-000000666", |
| "-000000777", |
| "-000000999", |
| "0000005555", |
| "0000006666", |
| "0000007777", |
| "0000008888", |
| "0000009999", |
| "-000005555", |
| "-000006666", |
| "-000007777", |
| "-000009999", |
| "0000055555", |
| "0000066666", |
| "0000077777", |
| "0000088888", |
| "0000099999", |
| "-000055555", |
| "-000066666", |
| "-000077777", |
| "-000099999", |
| "0000555555", |
| "0000666666", |
| "0000777777", |
| "0000888888", |
| "0000999999", |
| "-000555555", |
| "-000666666", |
| "-000777777", |
| "-000999999", |
| "0005555555", |
| "0006666666", |
| "0007777777", |
| "0008888888", |
| "0009999999", |
| "-005555555", |
| "-006666666", |
| "-007777777", |
| "-009999999", |
| "0055555555", |
| "0066666666", |
| "0077777777", |
| "0088888888", |
| "0099999999", |
| "-055555555", |
| "-066666666", |
| "-077777777", |
| "-099999999", |
| "0555555555", |
| "0666666666", |
| "0777777777", |
| "0888888888", |
| "0999999999", |
| "-555555555", |
| "-666666666", |
| "-777777777", |
| "-999999999", |
| "-2147483426", |
| "101", |
| "-2147483389", |
| "103", |
| "-2147483352", |
| "105", |
| "-2147483315", |
| "0000001234567890", |
| "0000001234567890", |
| "-0000001234567890", |
| "000001234567890", |
| "000001234567890", |
| "-000001234567890", |
| "00001234567890", |
| "00001234567890", |
| "-00001234567890", |
| "0001234567890", |
| "0001234567890", |
| "-0001234567890", |
| "001234567890", |
| "001234567890", |
| "-001234567890", |
| "01234567890", |
| "01234567890", |
| "-01234567890", |
| "1234567890", |
| "1234567890", |
| "-1234567890", |
| }; |
| for (std::string const &st : strint_list) { |
| T expected_value; |
| strtod_from_string(st, expected_value); |
| T result_value; |
| auto result = |
| fast_float::from_chars(st.data(), st.data() + st.size(), result_value); |
| if (result.ec != std::errc() && |
| result.ec != std::errc::result_out_of_range) { |
| printf("parsing %.*s\n", int(st.size()), st.data()); |
| std::cerr << " I could not parse " << std::endl; |
| return false; |
| } |
| if (result.ptr != st.data() + st.size()) { |
| printf("parsing %.*s\n", int(st.size()), st.data()); |
| std::cerr << " Did not get to the end " << std::endl; |
| return false; |
| } |
| if (result_value != expected_value) { |
| printf("parsing %.*s\n", int(st.size()), st.data()); |
| std::cerr << "expected value : " << to_string(expected_value) |
| << std::endl; |
| std::cerr << "result value : " << to_string(result_value) << std::endl; |
| std::cerr << " Mismatch " << std::endl; |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| int main() { |
| #if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__MINGW64__) || \ |
| defined(sun) || defined(__sun) |
| std::cout << "Warning: msys/cygwin or solaris detected." << std::endl; |
| #endif |
| std::cout << "32 bits checks" << std::endl; |
| Assert(partow_test<float>()); |
| Assert(test<float>()); |
| |
| std::cout << "64 bits checks" << std::endl; |
| Assert(partow_test<double>()); |
| Assert(test<double>()); |
| |
| std::cout << "All ok" << std::endl; |
| return EXIT_SUCCESS; |
| } |