diff --git a/Makefile b/Makefile
index e94987b7770fd580605c84c6caf30b1f50d058cd..e3e6ff5e6308833b239d005ef0162a0496f5e7c5 100644
--- a/Makefile
+++ b/Makefile
@@ -20,11 +20,14 @@ build-dir :
 buildspec :
 	npm run buildspec
 
-jasmine : buildspec
+jasmine : buildspec cls
 	npm run jasmine
 
 karma :
 	npm run karma
 
+cls :
+	printf "\033c"
+
 clean :
 	rm -rf $(BUILD_DIR)
diff --git a/spec/base.spec.ts b/spec/base.spec.ts
index 0bb55fbd6efcc8a0aed291e0ee594ae7cd1420a3..0d4d9af8619f12c471676a31906b09b5f45ecd35 100644
--- a/spec/base.spec.ts
+++ b/spec/base.spec.ts
@@ -10,16 +10,13 @@ describe('Class Nub: ', () => {
     // });
     describe('Calc(): ', () => {
         it('should return a result.vCalc equal to 3', () => {
-            let res = new Result(3);
-            expect(nub.Calc("C").vCalc).toBeCloseTo(res.vCalc, precDigits);
+            expect(nub.Calc("C").vCalc).toBeCloseTo(3, precDigits);
         });
         it('should return a result.vCalc equal to 1', () => {
-            let res = new Result(1);
-            expect(nub.Calc("A").vCalc).toBeCloseTo(res.vCalc, precDigits);
+            expect(nub.Calc("A").vCalc).toBeCloseTo(1, precDigits);
         });
         it('should return a result.vCalc equal to 2', () => {
-            let res = new Result(2); precDigits
-            expect(nub.Calc("B").vCalc).toBeCloseTo(res.vCalc, precDigits);
+            expect(nub.Calc("B").vCalc).toBeCloseTo(2, precDigits);
         });
     });
 });
diff --git a/spec/nubtest.ts b/spec/nubtest.ts
index 64a2f4f87438dc9ccaecc8aa39099e0fdbbb434f..e6a32d2adb1e1dc1cd78d0806343b0afc847517e 100644
--- a/spec/nubtest.ts
+++ b/spec/nubtest.ts
@@ -2,8 +2,8 @@ import { Result, IParamsEquation } from "../src/base";
 import { Nub } from "../src/nub";
 
 export class NubTest extends Nub {
-    constructor(v: IParamsEquation) {
-        super(v);
+    constructor(v: IParamsEquation, dbg: boolean = false) {
+        super(v, dbg);
         this.sVarsEq = ["C"];
     }
     Equation(): Result {
@@ -23,4 +23,4 @@ export let precDigits = 3;
 /**
  * précision de calcul (max de abs(v-v'))
  */
-export let precDist = Math.pow(10, -precDigits);
+export let precDist: number = Math.pow(10, -precDigits);
diff --git a/spec/regime_uniforme_circ.spec.ts b/spec/regime_uniforme_circ.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3b48f312d1dff457fb58eb9b56239b7ec5a57327
--- /dev/null
+++ b/spec/regime_uniforme_circ.spec.ts
@@ -0,0 +1,117 @@
+/// <reference path="../node_modules/@types/jasmine/index.d.ts" />
+
+import { Result } from "../src/base";
+import { RegimeUniforme } from "../src/regime_uniforme";
+import { cSnCirc } from "../src/section/section_circulaire";
+import { cParamsCanal } from "../src/section/section_type";
+import { precDigits, precDist } from "./nubtest";
+
+describe('Class RegimeUniforme / section circulaire : ', () => {
+    // beforeAll(() => {
+    // });
+
+    describe('Calc(): ', () => {
+        it('Diamètre should be 6', () => {
+            let paramCnl = new cParamsCanal(40, //  Ks=Strickler
+                1.2,  //  Q=Débit
+                0.001, //  If=pente du fond
+                precDist, // précision
+                1 // YB= hauteur de berge
+                // YCL=Condition limite en cote à l'amont ou à l'aval
+            );
+
+            let sect = new cSnCirc(undefined, paramCnl,
+                0 // diamètre
+            );
+            // tirant d'eau
+            sect.v.Y = 0.6613;
+
+            let ru = new RegimeUniforme(sect);
+
+            // expect(ru.Calc("D", 0, 0.001).vCalc).toBeCloseTo(6, 2);
+            expect(ru.Calc("D").vCalc).toBeCloseTo(6, 2);
+        });
+
+
+        it('Ks should be 40', () => {
+            let paramCnl = new cParamsCanal(0, //  Ks=Strickler
+                1.2,  //  Q=Débit
+                0.001, //  If=pente du fond
+                precDist, // précision
+                1 // YB= hauteur de berge
+                // YCL=Condition limite en cote à l'amont ou à l'aval
+            );
+
+            let sect = new cSnCirc(undefined, paramCnl,
+                6 // diamètre
+            );
+            // tirant d'eau
+            sect.v.Y = 0.6613;
+
+            let ru = new RegimeUniforme(sect);
+
+            expect(ru.Calc("Ks").vCalc).toBeCloseTo(40, 2);
+        });
+
+
+        it('If should be 0.001', () => {
+            let paramCnl = new cParamsCanal(40, //  Ks=Strickler
+                1.2,  //  Q=Débit
+                0, //  If=pente du fond
+                precDist, // précision
+                1 // YB= hauteur de berge
+                // YCL=Condition limite en cote à l'amont ou à l'aval
+            );
+
+            let sect = new cSnCirc(undefined, paramCnl,
+                6 // diamètre
+            );
+            // tirant d'eau
+            sect.v.Y = 0.6613;
+
+            let ru = new RegimeUniforme(sect);
+
+            expect(ru.Calc("If").vCalc).toBeCloseTo(0.001, precDigits);
+        });
+
+        it('Q should be 1.2', () => {
+            let paramCnl = new cParamsCanal(40, //  Ks=Strickler
+                0,  //  Q=Débit
+                0.001, //  If=pente du fond
+                precDist, // précision
+                1 // YB= hauteur de berge
+                // YCL=Condition limite en cote à l'amont ou à l'aval
+            );
+
+            let sect = new cSnCirc(undefined, paramCnl,
+                6 // diamètre
+            );
+            // tirant d'eau
+            sect.v.Y = 0.6613;
+
+            let ru = new RegimeUniforme(sect);
+
+            expect(ru.Calc("Q").vCalc).toBeCloseTo(1.2, precDigits);
+        });
+
+        it('Y should be 0.6613', () => {
+            let paramCnl = new cParamsCanal(40, //  Ks=Strickler
+                1.2,  //  Q=Débit
+                0.001, //  If=pente du fond
+                precDist, // précision
+                1 // YB= hauteur de berge
+                // YCL=Condition limite en cote à l'amont ou à l'aval
+            );
+
+            let sect = new cSnCirc(undefined, paramCnl,
+                6 // diamètre
+            );
+            // tirant d'eau
+            sect.v.Y = 0;
+
+            let ru = new RegimeUniforme(sect);
+
+            expect(ru.Calc("Y").vCalc).toBeCloseTo(0.6613, precDigits);
+        });
+    });
+});
diff --git a/src/nub.ts b/src/nub.ts
index 0b8be8df7236e8ae7810676c2979eb9d1783fff5..e6a257e0dccf6e08cbd524df5044e53486e28d98 100644
--- a/src/nub.ts
+++ b/src/nub.ts
@@ -29,6 +29,10 @@ export abstract class Nub extends Debug {
      * @param rPrec précision de calcul
      */
     Calc(sVarCalc: string, rInit: number = 0, rPrec: number = 0.001): Result {
+        this.debug("nub : sVarCalc=" + sVarCalc);
+        this.debug("nub : rInit=" + rInit);
+        this.debug("nub : rPrec=" + rPrec);
+
         for (let sVarEq of this._varsEq) {
             if (sVarCalc == sVarEq) {
                 return this.Equation(sVarCalc);
diff --git a/src/regime_uniforme.ts b/src/regime_uniforme.ts
index fa8cf789f9eaee554765a4fe8f5fb889752534f6..bee2efa5db81407af69fad80ede733355660edee 100644
--- a/src/regime_uniforme.ts
+++ b/src/regime_uniforme.ts
@@ -10,8 +10,6 @@ export class RegimeUniforme extends Nub {
     constructor(s: acSection, dbg: boolean = false) {
         super(s.v, dbg);
 
-        this.debug('constructeur RU');
-
         this.Sn = s;
 
         this.AddVarEq("Q");
@@ -29,7 +27,7 @@ export class RegimeUniforme extends Nub {
             //this.oLog.Add('h_normale_pente_neg_nul',true);
         } else {
             Qn = this.Sn.oP.v.Ks * Math.pow(this.Sn.Calc('R', this.Sn.v.Y), 2 / 3) * this.Sn.Calc('S', this.Sn.v.Y) * Math.sqrt(this.Sn.oP.v.If);
-            this.debug("RU : Qn=" + Qn);
+            //this.debug("RU : Qn=" + Qn);
         }
         return Qn;
     }