Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
HexavigesimalTest.cpp 1.97 KiB
#include "HexavigesimalTest.h"
#include <hexavigesimal>

CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( HexavigesimalTest, "bits" );
CPPUNIT_TEST_SUITE_REGISTRATION( HexavigesimalTest );

void HexavigesimalTest::setUp() {
}

void HexavigesimalTest::tearDown() {
}

void HexavigesimalTest::test1() {
	CPPUNIT_ASSERT_EQUAL(std::string("A")  , std::toBase26(0));
	CPPUNIT_ASSERT_EQUAL(std::string("B")  , std::toBase26(1));
	CPPUNIT_ASSERT_EQUAL(std::string("Z")  , std::toBase26(25));
	CPPUNIT_ASSERT_EQUAL(std::string("BA") , std::toBase26(26));
	CPPUNIT_ASSERT_EQUAL(std::string("BB") , std::toBase26(27));
	CPPUNIT_ASSERT_EQUAL(std::string("ZZ") , std::toBase26(675));
	CPPUNIT_ASSERT_EQUAL(std::string("BAA"), std::toBase26(676));

	CPPUNIT_ASSERT_EQUAL(0u  , std::fromBase26("A"));
	CPPUNIT_ASSERT_EQUAL(1u  , std::fromBase26("B"));
	CPPUNIT_ASSERT_EQUAL(25u , std::fromBase26("Z"));
	CPPUNIT_ASSERT_EQUAL(26u , std::fromBase26("BA"));
	CPPUNIT_ASSERT_EQUAL(27u , std::fromBase26("BB"));
	CPPUNIT_ASSERT_EQUAL(675u, std::fromBase26("ZZ"));
	CPPUNIT_ASSERT_EQUAL(676u, std::fromBase26("BAA"));

	CPPUNIT_ASSERT_EQUAL(std::string("")   , std::bijectiveToBase26(0));
	CPPUNIT_ASSERT_EQUAL(std::string("A")  , std::bijectiveToBase26(1));
	CPPUNIT_ASSERT_EQUAL(std::string("Z")  , std::bijectiveToBase26(26));
	CPPUNIT_ASSERT_EQUAL(std::string("AA") , std::bijectiveToBase26(27));
	CPPUNIT_ASSERT_EQUAL(std::string("AB") , std::bijectiveToBase26(28));
	CPPUNIT_ASSERT_EQUAL(std::string("ZZ") , std::bijectiveToBase26(702));
	CPPUNIT_ASSERT_EQUAL(std::string("AAA"), std::bijectiveToBase26(703));

	CPPUNIT_ASSERT_EQUAL(0u  , std::bijectiveFromBase26(""));
	CPPUNIT_ASSERT_EQUAL(1u  , std::bijectiveFromBase26("A"));
	CPPUNIT_ASSERT_EQUAL(26u , std::bijectiveFromBase26("Z"));
	CPPUNIT_ASSERT_EQUAL(27u , std::bijectiveFromBase26("AA"));
	CPPUNIT_ASSERT_EQUAL(28u , std::bijectiveFromBase26("AB"));
	CPPUNIT_ASSERT_EQUAL(702u, std::bijectiveFromBase26("ZZ"));
	CPPUNIT_ASSERT_EQUAL(703u, std::bijectiveFromBase26("AAA"));
}