/*
 * Instituto Superior de Engenharia do Porto
 *
 * Estruturas de Informação
 *
 * 2000/2001
 *
 * ------------------------------------------
 *
 * Miniteste
 *
 */

#include <iostream>
#include <string>
using namespace std;
#include "duracao.h"
#include "nota.h"
#include "mensagememail.h"
#include "fraccao.h"
#include "../ei-include/erro.h"


void teste_notas()
{
	CNota nota1;
	nota1.setNota(10);
	CNota nota2(nota1);

	cout << nota2;
}

void teste_duracao()
{
	CDuracao dur1;
	CDuracao dur2(3610L);
	dur1.setHoras(12);
	dur1.setMinutos(2);
	dur1.setSegundos(3);

	CDuracao dur3(dur1);

	cout << dur1.emSegundos() << endl;
	cout << dur2.emSegundos() << endl;
}

void teste_mensagememail()
{
	CMensagemEMail m1("joao", "paulo", "novidades", "só no continente");
	CMensagemEMail m2(m1);

	cout << m1 << endl;

	//para verificar o tempo de transmissão é necessário usar uma 
	//mensagem de tamanho consideravel, para isso cria-se esta string som 50000 posições
	string s;
	s.resize(50000, 'x');
	m1.setText(s);
	cout << "duração de m1: " << m1.duracaoTransmissao(_28Kb) << endl << endl;


	m2.setText("vai ao continente");
	cout << m2 << endl;

	if (m2 == m1)
		cout << "são iguais" << endl;
	else
		cout << "são diferentes" << endl;

	CMensagemEMail m3 = reply(m2, "já lá fui");

	cout << m3;
}

void teste_fraccao()
{
	CFracao f1(1, 2);
	CFracao f2;

	try
	{
		f2.setDividendo(3);
		f2.setDivisor(0);
	}
	catch (Erro e)
	{
		cout << "erro #" << e.codigo() << endl;
	}

	cout << f1;
}

void main()
{
	cout << "TESTE CNota" << endl;
	teste_notas();
	cin.get();

	cout << endl << "TESTE CDuracao" << endl;
	teste_duracao();
	cin.get();

	cout << endl << "TESTE CMensagemEMail" << endl;
	teste_mensagememail();
	cin.get();

	cout << endl << "TESTE CFraccao" << endl;
	teste_fraccao();
	cin.get();

}
