@neutrium/thermo.eos.iapws97
Version:
A javascript implementation of the IAWPS formulations for the thermodynamic properties of water and steam.
804 lines (599 loc) • 24.6 kB
JavaScript
var pt = require('../dist/PT');
describe("NeutriumJS.thermo.IAWPS97 Pressure-Temperature equations", function() {
describe("PT Auxiliary Equations", function() {
it('Region 2 and 3 boundary equation T = 623.15 K is correct', function() {
expect(+pt.b23_T_P(623.15).toFixed(7)).toEqual(16.5291643);
});
it('Region 2 and 3 boundary equation P = 16.5291643 MPa is correct', function() {
expect(+pt.b23_P_T(16.5291643).toFixed(2)).toEqual(623.15);
});
});
describe("PT Region 1", function() {
describe("correct results for P = 3 MPa, T = 300 K", function() {
var result;
beforeAll(function() {
result = pt.solve(3, 300);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(11)).toEqual(0.00100215168);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(6)).toEqual(115.331273);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(6)).toEqual(112.324818);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(9)).toEqual(0.392294792);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(4.17301218);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(5)).toEqual(1507.73921);
});
});
describe("correct results for P = 80 MPa, T = 300 K", function() {
var result;
beforeAll(function() {
result = pt.solve(80, 300);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(12)).toEqual(0.000971180894);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(6)).toEqual(184.142828);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(6)).toEqual(106.448356);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(9)).toEqual(0.368563852);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(4.01008987);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(5)).toEqual(1634.69054);
});
});
describe("correct results for P = 3 MPa, T = 500 K", function() {
var result;
beforeAll(function() {
result = pt.solve(3, 500);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(9)).toEqual(0.001202418);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(6)).toEqual(975.542239);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(6)).toEqual(971.934985);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(2.58041912);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(4.65580682);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(5)).toEqual(1240.71337);
});
});
});
describe("PT Region 2", function() {
describe("correct results for P = 0.0035 MPa, T = 300 K", function() {
var result;
beforeAll(function() {
result = pt.solve(0.0035, 300);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(7)).toEqual(39.4913866);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(2549.91145);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(4)).toEqual(2411.6916);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(8.52238967);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(1.91300162);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(427.920172);
});
});
describe("correct results for P = 0.0035 MPa, T = 700 K", function() {
var result;
beforeAll(function() {
result = pt.solve(0.0035, 700);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(7)).toEqual(92.3015898);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(3335.68375);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(3012.62819);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(7)).toEqual(10.1749996);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(2.08141274);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(644.289068);
});
});
describe("correct results for P = 30 MPa, T = 700 K", function() {
var result;
beforeAll(function() {
result = pt.solve(30, 700);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(11)).toEqual(0.00542946619);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(2631.49474);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(2468.61076);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(5.17540298);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(7)).toEqual(10.3505092);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(480.386523);
});
});
});
describe("PT Region 3", function() {
describe("subregion boundary equations", function() {
it('T_3ab(P) for P = 40 MPa is correct', function() {
expect(+pt.b3ab_P_T(40).toFixed(7)).toEqual(693.0341408);
});
it('T_3cd(P) for P = 25 MPa is correct', function() {
expect(+pt.b3cd_P_T(25).toFixed(7)).toEqual(649.3659208);
});
it('T_3ef(P) for P = 40 MPa is correct', function() {
expect(+pt.b3ef_P_T(40).toFixed(7)).toEqual(713.9593992);
});
it('T_3gh(P) for P = 23 MPa is correct', function() {
expect(+pt.b3gh_P_T(23).toFixed(7)).toEqual(649.8873759);
});
it('T_3ij(P) for P = 23 MPa is correct', function() {
expect(+pt.b3ij_P_T(23).toFixed(7)).toEqual(651.5778091);
});
it('T_3jk(P) for P = 23 MPa is correct', function() {
expect(+pt.b3jk_P_T(23).toFixed(7)).toEqual(655.8338344);
});
it('T_3mn(P) for P = 22.8 MPa is correct', function() {
expect(+pt.b3mn_P_T(22.8).toFixed(7)).toEqual(649.6054133);
});
it('T_3op(P) for P = 22.8 MPa is correct', function() {
expect(+pt.b3op_P_T(22.8).toFixed(7)).toEqual(650.0106943);
});
it('T_3qu(P) for P = 22 MPa is correct', function() {
expect(+pt.b3qu_P_T(22).toFixed(7)).toEqual(645.6355027);
});
it('T_3rx(P) for P = 22 MPa is correct', function() {
expect(+pt.b3rx_P_T(22).toFixed(7)).toEqual(648.2622754);
});
it('T_3uv(P) for P = 22.3 MPa is correct', function() {
expect(+pt.b3uv_P_T(22.3).toFixed(7)).toEqual(647.7996121);
});
it('T_3wx(P) for P = 22.3 MPa is correct', function() {
expect(+pt.b3wx_P_T(22.3).toFixed(7)).toEqual(648.2049480);
});
});
describe("specific volume equations", function() {
it('v3a(P,T) for P = 50 MPa and T = 630K is correct', function() {
expect(+pt.r3(50, 630).v.toFixed(12)).toEqual(0.001470853100);
});
it('v3a(P,T) for P = 80 MPa and T = 670K is correct', function() {
expect(+pt.r3(80, 670).v.toFixed(12)).toEqual(0.001503831359);
});
it('v3b(P,T) for P = 50 MPa and T = 710K is correct', function() {
expect(+pt.r3(50, 710).v.toFixed(12)).toEqual(0.002204728587);
});
it('v3b(P,T) for P = 80 MPa and T = 750K is correct', function() {
expect(+pt.r3(80, 750).v.toFixed(12)).toEqual(0.001973692940);
});
it('v3c(P,T) for P = 20 MPa and T = 630 K is correct', function() {
expect(+pt.r3(20, 630).v.toFixed(12)).toEqual(0.001761696406);
});
it('v3c(P,T) for P = 30 MPa and T = 650 K is correct', function() {
expect(+pt.r3(30, 650).v.toFixed(12)).toEqual(0.001819560617);
});
it('v3d(P,T) for P = 26 MPa and T = 656 K is correct', function() {
expect(+pt.r3(26, 656).v.toFixed(12)).toEqual(0.002245587720);
});
it('v3d(P,T) for P = 30 MPa and T = 670 K is correct', function() {
expect(+pt.r3(30, 670).v.toFixed(12)).toEqual(0.002506897702);
});
it('v3e(P,T) for P = 26 MPa and T = 661 K is correct', function() {
expect(+pt.r3(26, 661).v.toFixed(12)).toEqual(0.002970225962);
});
it('v3e(P,T) for P = 30 MPa and T = 675 K is correct', function() {
expect(+pt.r3(30, 675).v.toFixed(12)).toEqual(0.003004627086);
});
it('v3f(P,T) for P = 26 MPa and T = 671 K is correct', function() {
expect(+pt.r3(26, 671).v.toFixed(12)).toEqual(0.005019029401);
});
it('v3f(P,T) for P = 30 MPa and T = 690 K is correct', function() {
expect(+pt.r3(30, 690).v.toFixed(12)).toEqual(0.004656470142);
});
it('v3g(P,T) for P = 23.6 MPa and T = 649 K is correct', function() {
expect(+pt.r3(23.6, 649).v.toFixed(12)).toEqual(0.002163198378);
});
it('v3g(P,T) for P = 24 MPa and T = 650 K is correct', function() {
expect(+pt.r3(24, 650).v.toFixed(12)).toEqual(0.002166044161);
});
it('v3h(P,T) for P = 23.6 MPa and T = 652 K is correct', function() {
expect(+pt.r3(23.6, 652).v.toFixed(12)).toEqual(0.002651081407);
});
it('v3h(P,T) for P = 24 MPa and T = 654 K is correct', function() {
expect(+pt.r3(24, 654).v.toFixed(12)).toEqual(0.002967802335);
});
it('v3i(P,T) for P = 23.6 MPa and T = 653 K is correct', function() {
expect(+pt.r3(23.6, 653).v.toFixed(12)).toEqual(0.003273916816);
});
it('v3i(P,T) for P = 24 MPa and T = 655 K is correct', function() {
expect(+pt.r3(24, 655).v.toFixed(12)).toEqual(0.003550329864);
});
it('v3j(P,T) for P = 23.5 MPa and T = 655 K is correct', function() {
expect(+pt.r3(23.5, 655).v.toFixed(12)).toEqual(0.004545001142);
});
it('v3j(P,T) for P = 24 MPa and T = 660 K is correct', function() {
expect(+pt.r3(24, 660).v.toFixed(12)).toEqual(0.005100267704);
});
it('v3k(P,T) for P = 23 MPa and T = 660 K is correct', function() {
expect(+pt.r3(23, 660).v.toFixed(12)).toEqual(0.006109525997);
});
it('v3k(P,T) for P = 24 MPa and T = 670 K is correct', function() {
expect(+pt.r3(24, 670).v.toFixed(12)).toEqual(0.006427325645);
});
it('v3l(P,T) for P = 22.6 MPa and T = 646 K is correct', function() {
expect(+pt.r3(22.6, 646).v.toFixed(12)).toEqual(0.002117860851);
});
it('v3l(P,T) for P = 23 MPa and T = 646 K is correct', function() {
expect(+pt.r3(23, 646).v.toFixed(12)).toEqual(0.002062374674);
});
it('v3m(P,T) for P = 22.6 MPa and T = 648.6 K is correct', function() {
expect(+pt.r3(22.6, 648.6).v.toFixed(12)).toEqual(0.002533063780);
});
it('v3m(P,T) for P = 22.8 MPa and T = 649.3 K is correct', function() {
expect(+pt.r3(22.8, 649.3).v.toFixed(12)).toEqual(0.002572971781);
});
it('v3n(P,T) for P = 22.6 MPa and T = 649 K is correct', function() {
expect(+pt.r3(22.6, 649).v.toFixed(12)).toEqual(0.002923432711);
});
it('v3n(P,T) for P = 22.8 MPa and T = 649.7 K is correct', function() {
expect(+pt.r3(22.8, 649.7).v.toFixed(12)).toEqual(0.002913311494);
});
it('v3o(P,T) for P = 22.6 MPa and T = 649.1 K is correct', function() {
expect(+pt.r3(22.6, 649.1).v.toFixed(12)).toEqual(0.003131208996);
});
it('v3o(P,T) for P = 22.8 MPa and T = 649.9 K is correct', function() {
expect(+pt.r3(22.8, 649.9).v.toFixed(12)).toEqual(0.003221160278);
});
it('v3p(P,T) for P = 22.6 MPa and T = 649.4 K is correct', function() {
expect(+pt.r3(22.6, 649.4).v.toFixed(12)).toEqual(0.003715596186);
});
it('v3p(P,T) for P = 22.8 MPa and T = 650.2 K is correct', function() {
expect(+pt.r3(22.8, 650.2).v.toFixed(12)).toEqual(0.003664754790);
});
it('v3q(P,T) for P = 21.1 MPa and T = 640 K is correct', function() {
expect(+pt.r3(21.1, 640).v.toFixed(12)).toEqual(0.001970999272);
});
it('v3q(P,T) for P = 21.8 MPa and T = 643 K is correct', function() {
expect(+pt.r3(21.8, 643).v.toFixed(12)).toEqual(0.002043919161);
});
it('v3r(P,T) for P = 21.1 MPa and T = 644 K is correct', function() {
expect(+pt.r3(21.1, 644).v.toFixed(12)).toEqual(0.005251009921);
});
it('v3r(P,T) for P = 21.8 MPa and T = 648 K is correct', function() {
expect(+pt.r3(21.8, 648).v.toFixed(12)).toEqual(0.005256844741);
});
it('v3s(P,T) for P = 19.1 MPa and T = 635 K is correct', function() {
expect(+pt.r3(19.1, 635).v.toFixed(12)).toEqual(0.001932829079);
});
it('v3s(P,T) for P = 20 MPa and T = 638 K is correct', function() {
expect(+pt.r3(20, 638).v.toFixed(12)).toEqual(0.001985387227);
});
it('v3t(P,T) for P = 17 MPa and T = 626 K is correct', function() {
expect(+pt.r3(17, 626).v.toFixed(12)).toEqual(0.008483262001);
});
it('v3t(P,T) for P = 20 MPa and T = 640 K is correct', function() {
expect(+pt.r3(20, 640).v.toFixed(12)).toEqual(0.006227528101);
});
it('v3u(P,T) for P = 21.5 MPa and T = 644.6 K is correct', function() {
expect(+pt.r3(21.5, 644.6).v.toFixed(12)).toEqual(0.002268366647);
});
it('v3u(P,T) for P = 22 MPa and T = 646.1 K is correct', function() {
expect(+pt.r3(22, 646.1).v.toFixed(12)).toEqual(0.002296350553);
});
it('v3v(P,T) for P = 22.5 MPa and T = 648.6 K is correct', function() {
expect(+pt.r3(22.5, 648.6).v.toFixed(12)).toEqual(0.002832373260);
});
it('v3v(P,T) for P = 22.3 MPa and T = 647.9 K is correct', function() {
expect(+pt.r3(22.3, 647.9).v.toFixed(12)).toEqual(0.002811424405);
});
it('v3w(P,T) for P = 22.15 MPa and T = 647.5 K is correct', function() {
expect(+pt.r3(22.15, 647.5).v.toFixed(12)).toEqual(0.003694032281);
});
it('v3w(P,T) for P = 22.3 MPa and T = 648.1 K is correct', function() {
expect(+pt.r3(22.3, 648.1).v.toFixed(12)).toEqual(0.003622226305);
});
it('v3x(P,T) for P = 22.11 MPa and T = 648.0 K is correct', function() {
expect(+pt.r3(22.11, 648).v.toFixed(12)).toEqual(0.004528072649);
});
it('v3x(P,T) for P = 22.3 MPa and T = 649 K is correct', function() {
expect(+pt.r3(22.3, 649).v.toFixed(12)).toEqual(0.004556905799);
});
it('v3y(P,T) for P = 22 MPa and T = 646.84 K is correct', function() {
expect(+pt.r3(22, 646.84).v.toFixed(12)).toEqual(0.002698354719);
});
it('v3y(P,T) for P = 22.064 MPa and T = 647.05 K is correct', function() {
expect(+pt.r3(22.064, 647.05).v.toFixed(12)).toEqual(0.002717655648);
});
it('v3z(P,T) for P = 22 MPa and T = 646.89 K is correct', function() {
expect(+pt.r3(22, 646.89).v.toFixed(12)).toEqual(0.003798732962);
});
it('v3z(P,T) for P = 22.064 MPa and T = 647.15 K is correct', function() {
expect(+pt.r3(22.064, 647.15).v.toFixed(11)).toEqual(0.00370194001);
});
});
describe("correct results for P = 25.5837018 MPa (calculated), T = 650 K, Rho = 500 kg/m^3", function() {
var result;
beforeAll(function() {
result = pt.solve(25.5837018, 650, 500);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(7)).toEqual(1/500);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(1863.43019);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(1812.26279);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(4.05427273);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(7)).toEqual(13.8935717);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(502.005554);
});
});
describe("correct results for P = 22.2930643 MPa, T = 650 K, Rho = 200 kg/m^3", function() {
var result;
beforeAll(function() {
result = pt.solve(22.2930643, 650, 200);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(7)).toEqual(1/200);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(2375.12401);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(2263.65868);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(4.85438792);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(7)).toEqual(44.6579342);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(383.444594);
});
});
describe("correct results for P = 78.3095639 MPa, T = 750 K, Rho = 500 kg/m^3", function() {
var result;
beforeAll(function() {
result = pt.solve(78.3095639, 750, 500);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(11)).toEqual(1/500);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(2258.68845);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(2102.06932);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(4.46971906);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(6.34165359);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(760.696041);
});
});
});
describe("PT Region 4", function() {
describe("saturation pressure equation Psat(T)", function() {
it('Saturation pressure is correct for T = 300K', function() {
expect(+pt.r4_T_Psat(300).toFixed(11)).toEqual(0.00353658941);
});
it('Saturation pressure is correct for T = 500K', function() {
expect(+pt.r4_T_Psat(500).toFixed(8)).toEqual(2.63889776);
});
it('Saturation pressure is correct for T = 600K', function() {
expect(+pt.r4_T_Psat(600).toFixed(7)).toEqual(12.3443146);
});
});
describe("saturation temperature equation Tsat(P)", function() {
it('Saturation pressure is correct for P = 0.1 MPa', function() {
expect(+pt.r4_P_Tsat(0.1).toFixed(6)).toEqual(372.755919);
});
it('Saturation pressure is correct for P = 1 MPa', function() {
expect(+pt.r4_P_Tsat(1).toFixed(6)).toEqual(453.035632);
});
it('Saturation pressure is correct for P = 10 MPa', function() {
expect(+pt.r4_P_Tsat(10).toFixed(6)).toEqual(584.149488);
});
});
describe("correct results for P = 25.5837018 MPa (calculated), T = 650 K, Rho = 500 kg/m^3", function() {
var result;
beforeAll(function() {
result = pt.solve(25.5837018, 650, 500);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(7)).toEqual(1/500);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(1863.43019);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(1812.26279);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(4.05427273);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(7)).toEqual(13.8935717);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(502.005554);
});
});
describe("correct results for P = 22.2930643 MPa, T = 650 K, Rho = 200 kg/m^3", function() {
var result;
beforeAll(function() {
result = pt.solve(22.2930643, 650, 200);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(7)).toEqual(1/200);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(2375.12401);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(2263.65868);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(4.85438792);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(7)).toEqual(44.6579342);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(383.444594);
});
});
describe("correct results for P = 78.3095639 MPa, T = 750 K, Rho = 500 kg/m^3", function() {
var result;
beforeAll(function() {
result = pt.solve(78.3095639, 750, 500);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(11)).toEqual(1/500);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(2258.68845);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(2102.06932);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(4.46971906);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(6.34165359);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(760.696041);
});
});
});
describe("NeutriumJS.thermo.IAWPS97 PT Region 5", function() {
describe("correct results for P = 0.5 MPa, T = 1500 K", function() {
var result;
beforeAll(function() {
result = pt.solve(0.5, 1500);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(7)).toEqual(1.3845509);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(5219.76855);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(4)).toEqual(4527.4931);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(9.65408875);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(2.61609445);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(5)).toEqual(917.06869);
});
});
describe("correct results for P = 30 MPa, T = 1500 K", function() {
var result;
beforeAll(function() {
result = pt.solve(30, 1500);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(10)).toEqual(0.0230761299);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(5167.23514);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(4474.95124);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(7.72970133);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(2.72724317);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(6)).toEqual(928.548002);
});
});
describe("correct results for P = 30 MPa, T = 2000 K", function() {
var result;
beforeAll(function() {
result = pt.solve(30, 2000);
});
it('Specific gravity (v) is correct', function() {
expect(+result.v.toFixed(10)).toEqual(0.0311385219);
});
it('Specific enthalpy (h) is correct', function() {
expect(+result.h.toFixed(5)).toEqual(6571.22604);
});
it('Specific internal energy (u) is correct', function() {
expect(+result.u.toFixed(5)).toEqual(5637.07038);
});
it('Specific entropy (s) is correct', function() {
expect(+result.s.toFixed(8)).toEqual(8.53640523);
});
it('Specific isobaric heat capacity (Cp) is correct', function() {
expect(+result.cp.toFixed(8)).toEqual(2.88569882);
});
it('Speed of sound (w) is correct', function() {
expect(+result.w.toFixed(5)).toEqual(1067.36948);
});
});
});
});