diff --git a/source/tests/shared_lib/graphics/model_test.cpp b/source/tests/shared_lib/graphics/model_test.cpp index 56c524e13..ee221bc48 100644 --- a/source/tests/shared_lib/graphics/model_test.cpp +++ b/source/tests/shared_lib/graphics/model_test.cpp @@ -51,12 +51,24 @@ public: BaseColorPickEntity::resetUniqueColors(); TestBaseColorPickEntity colorPicker; + // This is the max color count this algorithm supports const int MAX_SUPPORTED_COLORS_USING_THIS_METHOD = 32767; for(unsigned int i = 0; i < MAX_SUPPORTED_COLORS_USING_THIS_METHOD; ++i) { bool duplicate = colorPicker.get_next_assign_color(colorPicker.getUniqueColorID()); CPPUNIT_ASSERT_EQUAL( false,duplicate ); } + BaseColorPickEntity::resetUniqueColors(); + + TestBaseColorPickEntity colorPicker2; + // This is a test to prove when the algorithm fails + const int MAX_SUPPORTED_COLORS_USING_THIS_METHOD_FAIL = 32768; + for(unsigned int i = 0; i < MAX_SUPPORTED_COLORS_USING_THIS_METHOD_FAIL; ++i) { + bool duplicate = colorPicker2.get_next_assign_color(colorPicker2.getUniqueColorID()); + CPPUNIT_ASSERT_EQUAL( (i+1 >= MAX_SUPPORTED_COLORS_USING_THIS_METHOD_FAIL),duplicate ); + } + + BaseColorPickEntity::resetUniqueColors(); BaseColorPickEntity::setTrackColorUse(false); } @@ -67,12 +79,24 @@ public: BaseColorPickEntity::resetUniqueColors(); TestBaseColorPickEntity colorPicker; + // This is the max color count this algorithm supports const int MAX_SUPPORTED_COLORS_USING_THIS_METHOD = 472; for(unsigned int i = 0; i < MAX_SUPPORTED_COLORS_USING_THIS_METHOD; ++i) { bool duplicate = colorPicker.get_next_assign_color(colorPicker.getUniqueColorID()); CPPUNIT_ASSERT_EQUAL( false,duplicate ); } + BaseColorPickEntity::resetUniqueColors(); + + TestBaseColorPickEntity colorPicker2; + // This is a test to prove when the algorithm fails + const int MAX_SUPPORTED_COLORS_USING_THIS_METHOD_FAIL = 473; + for(unsigned int i = 0; i < MAX_SUPPORTED_COLORS_USING_THIS_METHOD_FAIL; ++i) { + bool duplicate = colorPicker2.get_next_assign_color(colorPicker2.getUniqueColorID()); + CPPUNIT_ASSERT_EQUAL( (i+1 >= MAX_SUPPORTED_COLORS_USING_THIS_METHOD_FAIL),duplicate ); + } + + BaseColorPickEntity::resetUniqueColors(); BaseColorPickEntity::setTrackColorUse(false); }