Sha256: b117cc8406c7b50e552c0c90bc08e754e8079ce241e5a527fd66408c569d3ce7

Contents?: true

Size: 700 Bytes

Versions: 193

Compression:

Stored size: 700 Bytes

Contents

#include "allergies.h"

#include <string>
#include <map>
#include <unordered_set>
#include <algorithm>

namespace allergies
{

allergy_test::allergy_test(unsigned int test_result) : result(test_result){}

bool allergy_test::is_allergic_to(std::string const& allergen) const
{
    unsigned int allergen_value = allergies::ALLERGENS.at(allergen);
    return (result & allergen_value) == allergen_value;
}

std::unordered_set<std::string> allergy_test::get_allergies() const
{
    std::unordered_set<std::string> allergies; 
    
    for(auto const& entry : allergies::ALLERGENS)
        if((result & entry.second) == entry.second)
            allergies.insert(entry.first);

    return allergies;
}

}

Version data entries

193 entries across 193 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.179 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.178 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.177 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.176 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.175 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.174 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.173 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.172 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.171 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.170 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.169 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.167 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.166 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.165 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.164 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.163 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.162 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.161 tracks/cpp/exercises/allergies/example.cpp
trackler-2.2.1.160 tracks/cpp/exercises/allergies/example.cpp