Sha256: 84a82e289c850ef6594b87039077455708987f645650986e090cf0b731b1522b

Contents?: true

Size: 1.29 KB

Versions: 396

Compression:

Stored size: 1.29 KB

Contents

#include "hamming.h"
#include <stdexcept>
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE(no_difference_between_identical_strands)
{
    BOOST_REQUIRE_EQUAL(0, hamming::compute("A", "A"));
}

#if defined(EXERCISM_RUN_ALL_TESTS)
BOOST_AUTO_TEST_CASE(complete_hamming_distance_for_single_nucleotide_strand)
{
    BOOST_REQUIRE_EQUAL(1, hamming::compute("A", "G"));
}

BOOST_AUTO_TEST_CASE(complete_hamming_distance_for_small_strand)
{
    BOOST_REQUIRE_EQUAL(2, hamming::compute("AG", "CT"));
}

BOOST_AUTO_TEST_CASE(small_hamming_distance)
{
    BOOST_REQUIRE_EQUAL(1, hamming::compute("AT", "CT"));
}

BOOST_AUTO_TEST_CASE(small_hamming_distance_in_longer_strand)
{
    BOOST_REQUIRE_EQUAL(1, hamming::compute("GGACG", "GGTCG"));
}

BOOST_AUTO_TEST_CASE(domain_error_when_first_string_is_longer)
{
    BOOST_REQUIRE_THROW(hamming::compute("AAAG", "AAA"), std::domain_error);
}

BOOST_AUTO_TEST_CASE(domain_error_when_second_string_is_longer)
{
    BOOST_REQUIRE_THROW(hamming::compute("AAA", "AAAG"), std::domain_error);
}

BOOST_AUTO_TEST_CASE(large_hamming_distance)
{
    BOOST_REQUIRE_EQUAL(4, hamming::compute("GATACA", "GCATAA"));
}

BOOST_AUTO_TEST_CASE(hamming_distance_in_very_long_strand)
{
    BOOST_REQUIRE_EQUAL(9, hamming::compute("GGACGGATTCTG", "AGGACGGATTCT"));
}
#endif

Version data entries

396 entries across 396 versions & 1 rubygems

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