#include "isogram.h"
#ifdef EXERCISM_TEST_SUITE
#include <catch2/catch.hpp>
#else
#include "test/catch.hpp"
#endif
using namespace std;
// Isogram exercise test case data version 1.7.0
TEST_CASE("empty_string")
{
const bool actual = isogram::is_isogram("");
const bool expected {true};
REQUIRE(expected == actual);
}
#if defined(EXERCISM_RUN_ALL_TESTS)
TEST_CASE("isogram_with_only_lower_case_characters")
{
const bool actual = isogram::is_isogram("isogram");
const bool expected {true};
REQUIRE(expected == actual);
}
TEST_CASE("word_with_one_duplicated_character")
{
const bool actual = isogram::is_isogram("eleven");
const bool expected {false};
REQUIRE(expected == actual);
}
TEST_CASE("word_with_one_duplicated_character_from_the_end_of_the_alphabet")
{
const bool actual = isogram::is_isogram("zzyzx");
const bool expected {false};
REQUIRE(expected == actual);
}
TEST_CASE("longest_reported_english_isogram")
{
const bool actual = isogram::is_isogram("subdermatoglyphic");
const bool expected {true};
REQUIRE(expected == actual);
}
TEST_CASE("word_with_duplicated_character_in_mixed_case")
{
const bool actual = isogram::is_isogram("Alphabet");
const bool expected {false};
REQUIRE(expected == actual);
}
TEST_CASE("word_with_duplicated_character_in_mixed_case_lowercase_first")
{
const bool actual = isogram::is_isogram("alphAbet");
const bool expected {false};
REQUIRE(expected == actual);
}
TEST_CASE("hypothetical_isogrammic_word_with_hyphen")
{
const bool actual = isogram::is_isogram("thumbscrew-japingly");
const bool expected {true};
REQUIRE(expected == actual);
}
TEST_CASE("hypothetical_word_with_duplicated_character_following_hyphen")
{
const bool actual = isogram::is_isogram("thumbscrew-jappingly");
const bool expected {false};
REQUIRE(expected == actual);
}
TEST_CASE("isogram_with_duplicated_hyphen")
{
const bool actual = isogram::is_isogram("six-year-old");
const bool expected {true};
REQUIRE(expected == actual);
}
TEST_CASE("made_up_name_that_is_an_isogram")
{
const bool actual = isogram::is_isogram("Emily Jung Schwartzkopf");
const bool expected {true};
REQUIRE(expected == actual);
}
TEST_CASE("duplicated_character_in_the_middle")
{
const bool actual = isogram::is_isogram("accentor");
const bool expected {false};
REQUIRE(expected == actual);
}
TEST_CASE("same_first_and_last_characters")
{
const bool actual = isogram::is_isogram("angola");
const bool expected {false};
REQUIRE(expected == actual);
}
#endif