//: C02:SimpleDateTest2.cpp
// Z knihy "Myslíme v jazyce C++, část 2" od Bruce Eckela a Chucka Allisona.
// (c) 1995-2004 MindView, Inc. Všechna práva vyhrazena.
// Přečtěte si podmínky používání zdrojových kódů umístěné v souboru 
// 'Licence.txt' dodávaném spolu s balíčkem kódu dostupným na www.MindView.net.
//{L} Date
#include <iostream>
#include "Date.h"
using namespace std;

// Test machinery
int nProslo = 0, nSelhalo = 0;
void test(bool t) { if(t) ++nProslo; else ++nSelhalo; }

int main() {
  Datum mojeNarozky(1951, 10, 1);
  Datum dnes;
  Datum predvecerMychNarozenin("19510930");

  // Test operátorů
  test(mojeNarozky < dnes);
  test(mojeNarozky <= dnes);
  test(mojeNarozky != dnes);
  test(mojeNarozky == mojeNarozky);
  test(mojeNarozky >= mojeNarozky);
  test(mojeNarozky <= mojeNarozky);
  test(predvecerMychNarozenin < mojeNarozky);
  test(mojeNarozky > predvecerMychNarozenin);
  test(mojeNarozky >= predvecerMychNarozenin);
  test(mojeNarozky != predvecerMychNarozenin);

  // Test funkcí
  test(mojeNarozky.getRok() == 1951);
  test(mojeNarozky.getMesic() == 10);
  test(mojeNarozky.getDen() == 1);
  test(predvecerMychNarozenin.getRok() == 1951);
  test(predvecerMychNarozenin.getMesic() == 9);
  test(predvecerMychNarozenin.getDen() == 30);
  test(mojeNarozky.toString() == "19511001");
  test(predvecerMychNarozenin.toString() == "19510930");

  // Test trvání
  Datum d2(2003, 7, 4);
  Datum::Trvani dur = trvani(mojeNarozky, d2);
  test(dur.roky == 51);
  test(dur.mesice == 9);
  test(dur.dny == 3);

  // Vypsání výsledků:
  cout << "Prošlo: " << nProslo << ", Neprošlo: "
       << nSelhalo << endl;
} ///:~
