Дан класс Customer, у которого есть строковые свойства Name, ContactPhone и свойство Revenue типа decimal. Реализовать для объектов данного класса возможность строкового представления различного вида. Например, для объекта со значениями Name = "Jeffrey Richter", Revenue = 1000000, ContactPhone = "+1 (425) 555-0100", могут быть следующие варианты:
- Customer record: Jeffrey Richter, 1,000,000.00, +1 (425) 555-0100
- Customer record: +1 (425) 555-0100
- Customer record: Jeffrey Richter, 1,000,000.00
- Customer record: Jeffrey Richter
- Customer record: 1000000 и т.д.
Добавить для объектов данного класса дополнительную возможность форматирования (класс при этом не менять!), не предусмотренную классом. Разработать unit-тесты.
Расширить для целых чисел возможность форматного вывода, добавив представление в шестнадцатиричной системе счисления (класс Convert не использовать!). Разработать unit-тесты.
Разработать тип, в котором реализовать алгоритм Евклида для вычисления НОД двух целых чисел. Метод должен также определять значение времени, необходимое для выполнения расчета. Добавить к разработанному типу дополнительную функциональность в виде перегруженных методов вычисления НОД для трех и т.д. целых чисел. Добавить к разработанному типу метод, реализующиий [алгоритм Стейна (бинарный алгоритм Эвклида)] (http://en.wikipedia.org/wiki/Binary_GCD_algorithm) для расчета НОД двух целых чисел. Метод должен также определять значение времени, необходимое для выполнения расчетов. Добавить к разработанному типу дополнительную функциональность в виде перегруженных методов вычисления НОД для трех и т.д. целых чисел. Разработать unit-тесты для тестирования методов данного типа.