import matplotlib
matplotlib.use('Qt4Agg')
import numpy
import CoolProp
import CoolProp.CoolProp as CP
print "Testing the derivatives and store results for "+CoolProp.__gitrevision__
keys = ["dpdT","dpdrho","Z","dZ_dDelta","dZ_dTau","B","dBdT","C","dCdT","phir","dphir_dTau","d2phir_dTau2","dphir_dDelta",
"d2phir_dDelta2","d2phir_dDelta_dTau","d3phir_dDelta2_dTau","phi0","dphi0_dTau","d2phi0_dTau2","dphi0_dDelta","d2phi0_dDelta2",
"IsothermalCompressibility"]
multiply = ["VB","dBdT","VC","dCdT","dphir_dDelta","dpdT"]
keys = multiply[:]
fluid = "n-Pentane"
T = numpy.array([ 30,100,150,210])+273.15
D = numpy.array([710, 20, 20,210])
for key in keys:
liquid = CP.DerivTerms(key,T[0],D[0],fluid)
twophase = CP.DerivTerms(key,T[1],D[1],fluid)
gaseous = CP.DerivTerms(key,T[2],D[2],fluid)
supercrit = CP.DerivTerms(key,T[3],D[3],fluid)
print '{:<25}: {:>10.5f}; {:>10.5f}; {:>10.5f}; {:>10.5f}'.format(key,liquid,twophase,gaseous,supercrit)
for key in keys:
liquid = CP.DerivTermsU(key,T[0],D[0],fluid,'SI')
twophase = CP.DerivTermsU(key,T[1],D[1],fluid,'SI')
gaseous = CP.DerivTermsU(key,T[2],D[2],fluid,'SI')
supercrit = CP.DerivTermsU(key,T[3],D[3],fluid,'SI')
print '{:<25}: {:>10.5f}; {:>10.5f}; {:>10.5f}; {:>10.5f}'.format(key,liquid,twophase,gaseous,supercrit)
print
print "Testing Props: "
for key in keys:
liquid = CP.Props(key,"T",float(T[0]),"D",float(D[0]),fluid)
twophase = CP.Props(key,"T",float(T[1]),"D",float(D[1]),fluid)
gaseous = CP.Props(key,"T",float(T[2]),"D",float(D[2]),fluid)
supercrit = CP.Props(key,"T",float(T[3]),"D",float(D[3]),fluid)
print '{:<25}: {:>10.5f}; {:>10.5f}; {:>10.5f}; {:>10.5f}'.format(key,liquid,twophase,gaseous,supercrit)
for key in keys:
liquid = CP.PropsU(key,"T",float(T[0]),"D",float(D[0]),fluid,'SI')
twophase = CP.PropsU(key,"T",float(T[1]),"D",float(D[1]),fluid,'SI')
gaseous = CP.PropsU(key,"T",float(T[2]),"D",float(D[2]),fluid,'SI')
supercrit = CP.PropsU(key,"T",float(T[3]),"D",float(D[3]),fluid,'SI')
print '{:<25}: {:>10.5f}; {:>10.5f}; {:>10.5f}; {:>10.5f}'.format(key,liquid,twophase,gaseous,supercrit)