<commit_before>#include <gtest/gtest.h>
#include <string>
#include <iostream>
#include <cmath>
#include "conversions.h"

TEST(ConversionsCase, UStringToDoubleTest) {
  using iv::core::StringToDouble;
  ASSERT_TRUE(std::isnan(StringToDouble("TEST")));
  ASSERT_TRUE(std::isnan(StringToDouble(" T")));
  ASSERT_TRUE(std::isnan(StringToDouble(" T ")));
  ASSERT_TRUE(std::isnan(StringToDouble("T ")));
  ASSERT_TRUE(std::isnan(StringToDouble("T")));
  ASSERT_EQ(StringToDouble(" "), 0);
  ASSERT_EQ(StringToDouble("    "), 0);
  ASSERT_EQ(StringToDouble("0   "), 0);
  ASSERT_EQ(StringToDouble(" 0  "), 0);
  ASSERT_EQ(StringToDouble("0000"), 0);
  ASSERT_EQ(StringToDouble("00  "), 0);
  ASSERT_EQ(StringToDouble("01  "), 1);
  ASSERT_EQ(StringToDouble("08  "), 8);
  ASSERT_EQ(StringToDouble("  08  "), 8);
  ASSERT_EQ(StringToDouble("  8"), 8);
  ASSERT_EQ(StringToDouble("8"), 8);
  ASSERT_EQ(StringToDouble("0x01"), 1);
  ASSERT_EQ(StringToDouble("0x0f"), 15);
  ASSERT_EQ(StringToDouble("0x1f"), 31);
  ASSERT_EQ(StringToDouble("0x1f   "), 31);
  ASSERT_EQ(StringToDouble("    0x1f   "), 31);
  ASSERT_EQ(StringToDouble("    0x1f"), 31);
  ASSERT_TRUE(std::isnan(StringToDouble("    0x   1f")));
  ASSERT_TRUE(std::isnan(StringToDouble("    0 x   1f")));
  ASSERT_TRUE(std::isnan(StringToDouble("    0x1 f")));
  ASSERT_TRUE(std::isnan(StringToDouble("    0 x1f  ")));
  ASSERT_TRUE(std::isnan(StringToDouble("    0X   1f")));
  ASSERT_TRUE(std::isnan(StringToDouble("    0 X   1f")));
  ASSERT_TRUE(std::isnan(StringToDouble("    0X1 f")));
  ASSERT_TRUE(std::isnan(StringToDouble("    00X1f")));
  ASSERT_TRUE(std::isnan(StringToDouble("00X1f  ")));
  ASSERT_TRUE(std::isnan(StringToDouble("    00X1f  ")));
  ASSERT_TRUE(std::isnan(StringToDouble("00X1f")));
  ASSERT_EQ(StringToDouble("100"), 100);
  ASSERT_EQ(StringToDouble(" 100 "), 100);
  ASSERT_EQ(StringToDouble("100   "), 100);
  ASSERT_EQ(StringToDouble("    100"), 100);
  ASSERT_TRUE(std::isnan(StringToDouble("100T")));
  ASSERT_TRUE(std::isnan(StringToDouble("T100")));
  ASSERT_TRUE(std::isnan(StringToDouble("100     T")));
  ASSERT_TRUE(std::isnan(StringToDouble("         100     T")));
  ASSERT_EQ(StringToDouble("0"), 0);
  ASSERT_EQ(StringToDouble(""), 0);
  ASSERT_TRUE(std::isnan(StringToDouble("E0")));
  ASSERT_TRUE(std::isnan(StringToDouble("e0")));
  ASSERT_EQ(StringToDouble("1e0"), 1);
  ASSERT_EQ(StringToDouble("-10"), -10);
  ASSERT_EQ(StringToDouble("+10"), 10);
  ASSERT_EQ(StringToDouble(" -10 "), -10);
  ASSERT_EQ(StringToDouble(" +10 "), 10);
  ASSERT_FALSE(std::isfinite(StringToDouble(" +Infinity ")));
  ASSERT_FALSE(std::isfinite(StringToDouble(" -Infinity ")));
  ASSERT_FALSE(std::isfinite(StringToDouble("+Infinity ")));
  ASSERT_FALSE(std::isfinite(StringToDouble("-Infinity ")));
  ASSERT_FALSE(std::isfinite(StringToDouble("  +Infinity")));
  ASSERT_FALSE(std::isfinite(StringToDouble("  -Infinity")));
  ASSERT_TRUE(std::isnan(StringToDouble("Infinity  ty")));
  ASSERT_TRUE(std::isnan(StringToDouble("+Infinity t")));
  ASSERT_TRUE(std::isnan(StringToDouble("-Infinity t")));
  ASSERT_GT(StringToDouble(" +Infinity "), 0);
  ASSERT_LT(StringToDouble(" -Infinity "), 0);
}

TEST(ConversionsCase, BigNumberTest) {
  using iv::core::StringToDouble;
  ASSERT_FALSE(std::isfinite(StringToDouble("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111")));
  ASSERT_LT(StringToDouble("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111e-20000000000"), 1);
  ASSERT_LT(StringToDouble("-11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.111111111111111111111111111111111111111111111111111111111111111111e-999"), 1);
  ASSERT_LT(StringToDouble("-0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), 0);
  ASSERT_LT(StringToDouble("-0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff"), 0);
}

TEST(ConversionsCase, DoubleToStringWithRadix) {
  using iv::core::DoubleToStringWithRadix;
  ASSERT_EQ(DoubleToStringWithRadix(10.0, 2), "1010");
  ASSERT_EQ(DoubleToStringWithRadix(11.0, 2), "1011");
  ASSERT_EQ(DoubleToStringWithRadix(10.0, 4), "22");
  ASSERT_EQ(DoubleToStringWithRadix(11.0, 4), "23");
  ASSERT_EQ(DoubleToStringWithRadix(10.0, 8), "12");
  ASSERT_EQ(DoubleToStringWithRadix(11.0, 8), "13");
  ASSERT_EQ(DoubleToStringWithRadix(11.0, 16), "b");
  ASSERT_EQ(DoubleToStringWithRadix(12.0, 16), "c");
  DoubleToStringWithRadix(std::numeric_limits<double>::max(), 2);
}<commit_msg>fix and add StringToDouble test<commit_after>#include <gtest/gtest.h>
#include <string>
#include <iostream>
#include <cmath>
#include "conversions.h"

TEST(ConversionsCase, UStringToDoubleTest) {
  using iv::core::StringToDouble;
  ASSERT_TRUE(std::isnan(StringToDouble("TEST", false)));
  ASSERT_TRUE(std::isnan(StringToDouble(" T", false)));
  ASSERT_TRUE(std::isnan(StringToDouble(" T ", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("T ", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("T", false)));
  ASSERT_EQ(StringToDouble(" ", false), 0);
  ASSERT_EQ(StringToDouble("    ", false), 0);
  ASSERT_EQ(StringToDouble("0   ", false), 0);
  ASSERT_EQ(StringToDouble(" 0  ", false), 0);
  ASSERT_EQ(StringToDouble("0000", false), 0);
  ASSERT_EQ(StringToDouble("00  ", false), 0);
  ASSERT_EQ(StringToDouble("01  ", false), 1);
  ASSERT_EQ(StringToDouble("08  ", false), 8);
  ASSERT_EQ(StringToDouble("  08  ", false), 8);
  ASSERT_EQ(StringToDouble("  8", false), 8);
  ASSERT_EQ(StringToDouble("8", false), 8);
  ASSERT_EQ(StringToDouble("0x01", false), 1);
  ASSERT_EQ(StringToDouble("0x0f", false), 15);
  ASSERT_EQ(StringToDouble("0x1f", false), 31);
  ASSERT_EQ(StringToDouble("0x1f   ", false), 31);
  ASSERT_EQ(StringToDouble("    0x1f   ", false), 31);
  ASSERT_EQ(StringToDouble("    0x1f", false), 31);
  ASSERT_TRUE(std::isnan(StringToDouble("    0x   1f", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("    0 x   1f", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("    0x1 f", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("    0 x1f  ", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("    0X   1f", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("    0 X   1f", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("    0X1 f", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("    00X1f", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("00X1f  ", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("    00X1f  ", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("00X1f", false)));
  ASSERT_EQ(StringToDouble("100", false), 100);
  ASSERT_EQ(StringToDouble(" 100 ", false), 100);
  ASSERT_EQ(StringToDouble("100   ", false), 100);
  ASSERT_EQ(StringToDouble("    100", false), 100);
  ASSERT_TRUE(std::isnan(StringToDouble("100T", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("T100", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("100     T", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("         100     T", false)));
  ASSERT_EQ(StringToDouble("0", false), 0);
  ASSERT_EQ(StringToDouble("", false), 0);
  ASSERT_TRUE(std::isnan(StringToDouble("E0", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("e0", false)));
  ASSERT_EQ(StringToDouble("1e0", false), 1);
  ASSERT_EQ(StringToDouble("-10", false), -10);
  ASSERT_EQ(StringToDouble("+10", false), 10);
  ASSERT_EQ(StringToDouble(" -10 ", false), -10);
  ASSERT_EQ(StringToDouble(" +10 ", false), 10);
  ASSERT_FALSE(std::isfinite(StringToDouble(" +Infinity ", false)));
  ASSERT_FALSE(std::isfinite(StringToDouble(" -Infinity ", false)));
  ASSERT_FALSE(std::isfinite(StringToDouble("+Infinity ", false)));
  ASSERT_FALSE(std::isfinite(StringToDouble("-Infinity ", false)));
  ASSERT_FALSE(std::isfinite(StringToDouble("  +Infinity", false)));
  ASSERT_FALSE(std::isfinite(StringToDouble("  -Infinity", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("Infinity  ty", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("+Infinity t", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("-Infinity t", false)));
  ASSERT_GT(StringToDouble(" +Infinity ", false), 0);
  ASSERT_LT(StringToDouble(" -Infinity ", false), 0);
  ASSERT_EQ(-1.0, StringToDouble("   -1   ", false));
  ASSERT_EQ(1.0, StringToDouble("   +1   ", false));
  ASSERT_TRUE(std::isnan(StringToDouble("   -  1   ", false)));
  ASSERT_TRUE(std::isnan(StringToDouble("   +  1   ", false)));
}

TEST(ConversionsCase, BigNumberTest) {
  using iv::core::StringToDouble;
  ASSERT_FALSE(std::isfinite(StringToDouble("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", false)));
  ASSERT_LT(StringToDouble("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111e-20000000000", false), 1);
  ASSERT_LT(StringToDouble("-11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.111111111111111111111111111111111111111111111111111111111111111111e-999", false), 1);
}

TEST(ConversionsCase, DoubleToStringWithRadix) {
  using iv::core::DoubleToStringWithRadix;
  ASSERT_EQ(DoubleToStringWithRadix(10.0, 2), "1010");
  ASSERT_EQ(DoubleToStringWithRadix(11.0, 2), "1011");
  ASSERT_EQ(DoubleToStringWithRadix(10.0, 4), "22");
  ASSERT_EQ(DoubleToStringWithRadix(11.0, 4), "23");
  ASSERT_EQ(DoubleToStringWithRadix(10.0, 8), "12");
  ASSERT_EQ(DoubleToStringWithRadix(11.0, 8), "13");
  ASSERT_EQ(DoubleToStringWithRadix(11.0, 16), "b");
  ASSERT_EQ(DoubleToStringWithRadix(12.0, 16), "c");
  DoubleToStringWithRadix(std::numeric_limits<double>::max(), 2);
}
{'fraction_non_alphanumeric': 0.1118988696408267, 'fraction_numerical': 0.3882014580964484, 'mean_word_length': 12.767955801104973, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 12, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3710280', 'n_tokens_mistral': 8974, 'n_tokens_neox': 3884, 'n_words': 456}