На вход программы поступает файл в формате:
Дата  Счёт1  Счёт2  Сумма  Примечание
Поля разделены пробелами или символами табуляции. Дата имеет формат YYYY-MM-DD или DD.MM.YYYY (2014-09-22, 22.09.2014). 
Счёт1 и Счёт2 – строки без пробелов. Сумма — число. Примечание –  любой текст, он игнорируется.
Каждая строка отражает перевод суммы с одного счёта на другой (транзакция).
Пример файла:
01.01.2014 Старт Кошелёк 990     Изначально в кошельке было 990 руб
01.01.2014 Старт Карта 7000      А на карте 7000
20.09.2014 Кошелёк Проезд 70     Заплатил за проезд
20.09.2014 Кошелёк Базар 500     Купил фруктов на базаре
2014-09-21 Карта Книги 770.31    Купил книжку по карточке
21.02.2014 Карта Кошелёк 1000    Снял тысячу в банкомате
Файл может содержать пустые и невалидные строки. Программа должна корректно это обрабатывать.
Программа должна поддерживать два режима:
990-70-500+1000 = 1420.входящий + приход - расход).Для всех разработанных модулей должны быть созданы наборы unit тестов. Функций ввода/вывода нужно тестировать с помощью std::stringstream.