AlphaNumberDecoratorTest.cc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "AlphaNumberDecorator.h"
  2. #include <iostream>
  3. #include <cppunit/extensions/HelperMacros.h>
  4. namespace aria2 {
  5. class AlphaNumberDecoratorTest:public CppUnit::TestFixture {
  6. CPPUNIT_TEST_SUITE(AlphaNumberDecoratorTest);
  7. CPPUNIT_TEST(testDecorate);
  8. CPPUNIT_TEST(testDecorate_uppercase);
  9. CPPUNIT_TEST(testDecorate_minus);
  10. CPPUNIT_TEST_SUITE_END();
  11. private:
  12. public:
  13. void setUp() {
  14. }
  15. void testDecorate();
  16. void testDecorate_uppercase();
  17. void testDecorate_minus();
  18. };
  19. CPPUNIT_TEST_SUITE_REGISTRATION( AlphaNumberDecoratorTest );
  20. void AlphaNumberDecoratorTest::testDecorate()
  21. {
  22. CPPUNIT_ASSERT_EQUAL(std::string("a"), AlphaNumberDecorator(1).decorate(0));
  23. CPPUNIT_ASSERT_EQUAL(std::string("z"), AlphaNumberDecorator(1).decorate(25));
  24. CPPUNIT_ASSERT_EQUAL(std::string("zz"), AlphaNumberDecorator(1).decorate(675)); // 25*26+25
  25. CPPUNIT_ASSERT_EQUAL(std::string("aab"), AlphaNumberDecorator(3).decorate(1));
  26. }
  27. void AlphaNumberDecoratorTest::testDecorate_uppercase()
  28. {
  29. CPPUNIT_ASSERT_EQUAL(std::string("A"), AlphaNumberDecorator(1, true).decorate(0));
  30. CPPUNIT_ASSERT_EQUAL(std::string("Z"), AlphaNumberDecorator(1, true).decorate(25));
  31. CPPUNIT_ASSERT_EQUAL(std::string("ZZ"), AlphaNumberDecorator(1, true).decorate(675)); // 25*26+25
  32. CPPUNIT_ASSERT_EQUAL(std::string("AAB"), AlphaNumberDecorator(3, true).decorate(1));
  33. }
  34. void AlphaNumberDecoratorTest::testDecorate_minus()
  35. {
  36. CPPUNIT_ASSERT_EQUAL(std::string("NXMRLXV"), AlphaNumberDecorator(1, true).decorate(-1));
  37. }
  38. } // namespace aria2