} END_TEST

/************** Concatenate multi-digit value to a complex value **************/
START_TEST(concatinate_all_the_digits_of_two_complex_values) {
   RomanNumber rnFirst = newRomanNumber("MDCCCCLXXXXVIIII");
   RomanNumber rnSecond = newRomanNumber("MDCCCCLXXXXVIIII");

   RomanNumber concat = rnConcatinate(rnFirst, rnSecond);

   ck_assert_str_eq("MDCCCCLXXXXVIIIIMDCCCCLXXXXVIIII", to_string(concat));
} END_TEST
} END_TEST

/****************** Concatenate two non-standardized numbers ******************/
START_TEST(concatinate_all_the_digits_of_two_nonstandard_values) {
   RomanNumber rnFirst = newRomanNumber("XVIIII");
   RomanNumber rnSecond = newRomanNumber("XVIIII");

   RomanNumber concat = rnConcatinate(rnFirst, rnSecond);

   ck_assert_str_eq("XVIIIIXVIIII", to_string(concat));
} END_TEST
} END_TEST

/************* Concatenate single digit to non-standardized value *************/
START_TEST(concatinate_all_the_digits_of_a_single_and_nonstandard_value) {
   RomanNumber rnFirst = newRomanNumber("I");
   RomanNumber rnSecond = newRomanNumber("XVIIII");

   RomanNumber concat = rnConcatinate(rnFirst, rnSecond);

   ck_assert_str_eq("IXVIIII", to_string(concat));
} END_TEST
} END_TEST

/***************** Combine a single digit to multiple digits ******************/
START_TEST(concatinate_all_the_digits_of_a_single_and_double_digit_value) {
   RomanNumber rnFirst = newRomanNumber("I");
   RomanNumber rnSecond = newRomanNumber("VI");

   RomanNumber concat = rnConcatinate(rnFirst, rnSecond);

   ck_assert_str_eq("IVI", to_string(concat));
} END_TEST
} END_TEST

/********************** Combine two single digit values ***********************/
START_TEST(concatinate_all_the_digits_two_single_digit_values) {
   RomanNumber rnFirst = newRomanNumber("I");
   RomanNumber rnSecond = newRomanNumber("I");

   RomanNumber concat = rnConcatinate(rnFirst, rnSecond);

   ck_assert_str_eq("II", to_string(concat));
} END_TEST
示例#6
0
RomanNumber rnAdd(RomanNumber number1, RomanNumber number2) {
   RomanNumber returnValue;

   rnRemoveSubtractive(&number1);
   rnRemoveSubtractive(&number2);

   returnValue = rnConcatinate(number1, number2);
   rnSort(&returnValue);
   rnConsolidate(&returnValue);
   rnRewriteSubtractive(&returnValue);

   return returnValue;
}
} END_TEST

/*******************************************************************************
 * Concatinate digits of two values into one new one                           *
 ******************************************************************************/

/******** Create a function to create one value from the digits of two ********/
START_TEST(concatinate_all_the_digits_of_two_numbers_into_a_new_value) {
   RomanNumber rnFirst = newRomanNumber("MDC");
   RomanNumber rnSecond = newRomanNumber("LXVI");

   RomanNumber concat = rnConcatinate(rnFirst, rnSecond);

   ck_assert_str_eq("MDCLXVI", to_string(concat));
} END_TEST