From 03f8cf9e7d8889afe7ff1b09ccd8795bc889a2ee Mon Sep 17 00:00:00 2001
From: Dorchies David <david.dorchies@irstea.fr>
Date: Tue, 28 Apr 2020 15:27:25 +0200
Subject: [PATCH] fix(jet): `arctan` should be used instead of `arcsin`

- Calculation code modified
- Module test rewrited from simple example of Dominique Courret's Excel sheet

Fix #212
---
 spec/devalaison/jet.spec.ts | 11 ++++++-----
 src/devalaison/jet.ts       |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/spec/devalaison/jet.spec.ts b/spec/devalaison/jet.spec.ts
index 583aaefe..016b0fed 100644
--- a/spec/devalaison/jet.spec.ts
+++ b/spec/devalaison/jet.spec.ts
@@ -4,7 +4,7 @@ import { MessageCode, ParamCalculability } from "../../src/index";
 
 function newJet(): Jet {
     return new Jet(
-        new JetParams(5, 0.3, 77.48, 5, 3.42, 19.0788),
+        new JetParams(5, 0.03, 0, -5.04928, -6, 5.14768),
         false
     );
 }
@@ -22,10 +22,10 @@ describe("Class Jet − ", () => {
                 const ref: number = p.currentValue;
                 jet.calculatedParam.singleValue = jet.calculatedParam.singleValue / 2;
                 expect(jet.CalcSerie().vCalc).toBeCloseTo(ref, 3);
-                expect(jet.result.values.t).toBeCloseTo(4, 3);
-                expect(jet.result.values.Vx).toBeCloseTo(4.770, 3);
-                expect(jet.result.values.Vz).toBeCloseTo(-37.74, 3);
-                expect(jet.result.values.Vt).toBeCloseTo(38.04, 3);
+                expect(jet.result.values.t).toBeCloseTo(1.03, 3);
+                expect(jet.result.values.Vx).toBeCloseTo(4.99775, 3);
+                expect(jet.result.values.Vz).toBeCloseTo(-9.95437, 3);
+                expect(jet.result.values.Vt).toBeCloseTo(11.13853, 3);
             });
         }
     }
@@ -93,6 +93,7 @@ describe("Class Jet − ", () => {
             expect(res.log.messages[1].code).toBe(MessageCode.WARNING_JET_START_ELEVATION_UNDERGROUND);
         });
         it("jet underground (calculated), there should be two warnings", () => {
+            jet.prms.S.singleValue = 0.3;
             jet.prms.D.singleValue = 3.003;
             jet.prms.ZW.singleValue = 27;
             jet.prms.ZF.singleValue = 28.5;
diff --git a/src/devalaison/jet.ts b/src/devalaison/jet.ts
index 160311d9..10298cb1 100644
--- a/src/devalaison/jet.ts
+++ b/src/devalaison/jet.ts
@@ -272,6 +272,6 @@ export class Jet extends Nub {
     }
 
     private get alpha(): number {
-        return Math.asin(this.prms.S.v);
+        return Math.atan(this.prms.S.v);
     }
 }
-- 
GitLab