aboutsummaryrefslogtreecommitdiffstats
path: root/tools/enum_parser/parse_enum/benchmark_build/ut/huge_enums_fallback_ut.cpp
blob: 8d6800946f040b74bdb6571b0519dd40c7c66c87 (plain) (blame)
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
#include <tools/enum_parser/parse_enum/benchmark_build/lib/enum_huge.h_serialized.h>
#include <tools/enum_parser/parse_enum/benchmark_build/lib/enum_enormous.h_serialized.h>
#include <library/cpp/testing/unittest/registar.h>
#include <util/generic/serialized_enum.h>
#include <util/string/cast.h>


namespace {
    template <class EEnum>
    void EnumerateEnum() {
        const auto& allValues = GetEnumAllValues<EEnum>();

        TString s;
        for (EEnum e : allValues) {
            UNIT_ASSERT_NO_EXCEPTION(s = ToString(e));
            UNIT_ASSERT_NO_EXCEPTION(e = FromString<EEnum>(s));
        }

        EEnum tmp;
        UNIT_ASSERT_VALUES_EQUAL(TryFromString<EEnum>("", tmp), false);
    }
}

Y_UNIT_TEST_SUITE(TTestHugeEnums) {
    Y_UNIT_TEST(Huge) {
        EnumerateEnum<NHuge::EHuge>();
    }
    Y_UNIT_TEST(Enormous) {
        EnumerateEnum<EEnormous>();
    }
};