from LibPythonExample import intRates as intRates
t = 0.0 
T = 2.0
x = 0.0
r = 0.02
a = 0.01
v = 0.03 
fid = open('intRatesOut1.txt', 'w') 
fid.write('Discount factors coincide for t=0, x=0:\n')
fid.write('Simple discounting: ' + str(intRates.discFactorDeterministic(t, T, r)) + '\n')
fid.write('Linear Gaussian:    ' + str(intRates.discFactorLinearGaussian(t, T, r, x, a, v))+ '\n')
t = 0.5
fid.write('\nDiscount factors are different for t>0, x=0:\n')
fid.write('Simple discounting: ' + str(intRates.discFactorDeterministic(t, T, r))+ '\n')
fid.write('Linear Gaussian:    ' + str(intRates.discFactorLinearGaussian(t, T, r, x, a, v))+ '\n')
x = 0.02
fid.write('\nOr for x>0 \n')
fid.write('Simple discounting: ' + str(intRates.discFactorDeterministic(t, T, r))+ '\n')
fid.write('Linear Gaussian:    ' + str(intRates.discFactorLinearGaussian(t, T, r, x, a, v))+ '\n')
###
fid.write('\nPrice of coupon paying bond for t>0, x>0:\n')
Tlist = [1.0, 2.0, 3.0, 4.0]
Clist = [0.05, 0.05, 0.05, 1.05]
simpleDiscFun = lambda t0, T0, x0: intRates.discFactorDeterministic(t0, T0, r)
linGaussFun   = lambda t0, T0, x0: intRates.discFactorLinearGaussian(t0, T0, r, x0, a, v)
fid.write('Simple discounting: ' + str(intRates.cpnBondPrice(t, Tlist, Clist, x, simpleDiscFun))+ '\n')
fid.write('Linear Gaussian:    ' + str(intRates.cpnBondPrice(t, Tlist, Clist, x, linGaussFun))+ '\n')
fid.close()
