<commit_before>
#include <iostream>
#include <string>
#include <sstream>
#include <type_traits>
#include <assert.h>
#include <cstddef>
#include <utility>

#include "smart_enum.h"
#include "third_party/Catch/catch.hpp"

using namespace std;


SMART_ENUM(Animal, int) {
     SM_ENUM_ELEM(Dog,    1,  "dog"  , "dog_description")
     SM_ENUM_ELEM(Cat,    2,  "cat"  , "cat_description")
     SM_ENUM_ELEM(Lion,   3,  "Lion" , "lion_description")
     SM_ENUM_ELEM(Horse,  5,  "horse", "horse_description")
     SM_ENUM_ELEM(Tiger, 10,  "tiger")
     SM_ENUM_ELEM(Monkey, 20)
};

TEST_CASE( "Base tests", "[base]" )
{
    //constructors testing
    Animal aa1(Animal::Dog);
    Animal aa2{Animal::Dog};
    Animal aa3 = {Animal::Dog};
    Animal aa4 = Animal(Animal::Dog);
<commit_msg>Unstable<commit_after>
#include <iostream>
#include <string>
#include <sstream>
#include <type_traits>
#include <assert.h>
#include <cstddef>
#include <utility>

#include "smart_enum.h"
#include "third_party/Catch/catch.hpp"

using namespace std;


SMART_ENUM(Animal, int) {
     SM_ENUM_ELEM(Dog,    1,  "dog"  , "dog_description")
     SM_ENUM_ELEM(Cat,    2,  "cat"  , "cat_description")
     SM_ENUM_ELEM(Lion,   3,  "Lion" , "lion_description")
     SM_ENUM_ELEM(Horse,  5,  "horse", "horse_description")
     SM_ENUM_ELEM(Tiger, 10,  "tiger")
     SM_ENUM_ELEM(Monkey,20)
};

SMART_ENUM(ABCDE, int) {
     SM_ENUM_ELEM(Dog3,    88,  "dog"  , "dog_description")
     SM_ENUM_ELEM(Cat3,    99,  "cat"  , "cat_description")
};

TEST_CASE( "Base tests", "[base]" )
{
    //constructors testing
    Animal aa1(Animal::Dog);
    Animal aa2{Animal::Dog};
    Animal aa3 = {Animal::Dog};
    Animal aa4 = Animal(Animal::Dog);

{'fraction_non_alphanumeric': 0.1560117302052786, 'fraction_numerical': 0.017595307917888565, 'mean_word_length': 4.1540785498489425, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, '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': '2610559', 'n_tokens_mistral': 742, 'n_tokens_neox': 693, 'n_words': 131}