#ifndef TERMSTRUCTURE_H
#define TERMSTRUCTURE_H

#include<iostream>
#include<cmath>
#include<vector>
#include<map>
#include"Date.h"

using namespace std;

class TermStructure{
	private:
	
		map<Date,double > yieldCurve;
		map<Date,double> discountCurve;
		map<Date,double> forwardCurve;
		map<double,double> yieldFunction;
		Date start;
		double dayCount;

	public:
		
		TermStructure();
		TermStructure(vector<Date>,vector<double>,double);

		double yieldToDiscount(double,double);
		double discountToYield(double,double);
		map<Date,double> getCurve() const;
		map<double,double> getFunction() const;
		double getDayCount() const;
		Date getStart();
		virtual double buildCurve(const Date &)=0;
		

};

#endif