Ghytro

test_generator.cpp

Apr 18th, 2021
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.28 KB | None | 0 0
  1. namespace test_generator
  2. {
  3.     std::string owner_data()
  4.     {
  5.         const std::vector<std::string> first_names = {
  6.             "Wade","Dave","Seth","Ivan","Riley","Gilbert","Jorge","Dan","Brian","Roberto","Ramon","Miles","Liam",
  7.             "Nathaniel","Ethan","Lewis","Milton","Claude","Joshua","Glen","Harvey","Blake","Antonio","Connor",
  8.             "Julian","Aidan","Harold","Conner","Peter","Hunter","Eli","Alberto","Carlos","Shane",
  9.             "Aaron","Marlin","Paul","Ricardo","Hector","Alexis","Adrian","Kingston","Douglas",
  10.             "Gerald","Joey","Johnny","Charlie","Scott","Martin","Tristin","Troy","Tommy",
  11.             "Rick","Victor","Jessie","Neil","Ted","Nick","Wiley","Morris","Clark","Stuart","Orlando",
  12.             "Keith","Marion","Marshall","Noel","Everett","Romeo","Sebastian","Stefan","Robin",
  13.             "Clarence", "Sandy", "Ernest", "Samuel", "Benjamin", "Luka", "Fred", "Albert", "Greyson",
  14.             "Terry","Cedric","Joe","Paul","George","Bruce","Christopher","Mark",
  15.             "Ron","Craig","Philip","Jimmy","Arthur","Jaime","Perry","Harold","Jerry","Shawn", "Walter"
  16.         };
  17.         const std::vector<std::string> last_names = {
  18.             "Adams", "Wilson", "Burton", "Harris", "Stevens", "Robinson", "Lewis", "Walker", "Payne", "Baker",
  19.             "Owen", "Holmes", "Chapman", "Webb", "Allen", "Jones", "Davidson", "Foster", "Matthews", "White", "Griffiths",
  20.             "Knight", "Corbyn", "Young", "Evans", "Smith", "Wright", "Jenkins", "Green", "Hughes", "Taylor", "Anderson"
  21.         };
  22.         return first_names[std::rand() % first_names.size()] + " " + last_names[std::rand() % last_names.size()];
  23.     }
  24.  
  25.     std::string id()
  26.     {
  27.         const std::string allowed = "ABEKMHOPCTYX";
  28.         std::string letters;
  29.         for (int i = 0; i < 3; ++i)
  30.             letters += allowed[std::rand() % allowed.length()];
  31.         unsigned region = std::rand() % 199 + 1,
  32.                  num = std::rand() % 900 + 100;
  33.         return letters[0] +
  34.                std::to_string(num) +
  35.                letters[1] + letters[2] +
  36.                std::to_string(region);
  37.     }
  38.  
  39.     std::string model()
  40.     {
  41.         const std::vector<std::string> models = {"Polo", "Passat", "Jetta", "Tiguan", "Touareg",
  42.                                                 "Logan", "Sandero", "Kaptur", "Duster", "Arkana",
  43.                                                 "Sportage", "Rio", "Sorento", "Ceed", "Soul",
  44.                                                 "Octavia", "Kodiaq", "Karoq", "Superb", "Rapid",
  45.                                                 "Focus", "Mondeo", "Kuga", "Fiesta", "Ecosport",
  46.                                                 "Corolla", "Camry", "Highlander", "Fortuner", "Supra",
  47.                                                 "Qashqai", "X-Trail", "Terrano", "Murano", "Juke",
  48.                                                 "Cobalt", "Tahoe", "Traverse", "Spark", "Nexia",
  49.                                                 "Vesta", "Granta", "Priora", "Niva", "Largus"};
  50.         return models[std::rand() % models.size()];
  51.     }
  52.  
  53.     std::string color()
  54.     {
  55.         const std::vector<std::string> colors = {"White", "Black", "Red", "Green",
  56.                                       "Grey", "Blue", "Yellow", "Brown",
  57.                                       "Orange", "Purple"};
  58.         return colors[std::rand() % colors.size()];
  59.     }
  60.  
  61.     std::string date()
  62.     {
  63.         constexpr int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  64.         constexpr int years[] = {2019, 2020};
  65.         int month = std::rand() % 12 + 1;
  66.         int day = std::rand() % days_in_month[month - 1] + 1;
  67.         int year = years[std::rand() % 2];
  68.         std::string str_month = (month < 10 ? "0" : "") + std::to_string(month);
  69.         std::string str_day = (day < 10 ? "0" : "") + std::to_string(day);
  70.         return str_day + "." + str_month + "." + std::to_string(year);
  71.     }
  72.  
  73.     void generate_test_set(size_t set_size)
  74.     {
  75.         std::ofstream fout("test.txt");
  76.         for (size_t i = 0; i < set_size; ++i)
  77.             fout << model() << " " << id() << " " << color() <<
  78.                     " " << owner_data() << " " << date() << std::endl;
  79.         fout.close();
  80.     }
  81. }
  82.  
  83. int main()
  84. {
  85.     test_generator::generate_test_set(1e7);
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment