diff --git a/spec/regime_uniforme_puissance.spec.ts b/spec/regime_uniforme_puissance.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8363d83a46bc44e0d97ffffe367f0a19b09ec86f
--- /dev/null
+++ b/spec/regime_uniforme_puissance.spec.ts
@@ -0,0 +1,141 @@
+/// <reference path="../node_modules/@types/jasmine/index.d.ts" />
+
+import { Result } from "../src/base";
+import { RegimeUniforme } from "../src/regime_uniforme";
+import { cSnPuiss } from "../src/section/section_puissance";
+import { cParamsCanal } from "../src/section/section_type";
+import { precDigits, precDist } from "./nubtest";
+
+describe('Class RegimeUniforme / section puissance: ', () => {
+    beforeAll(() => {
+    });
+
+    describe('Calc(): ', () => {
+        it('k should be 0.635', () => {
+            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 cSnPuiss(undefined, paramCnl,
+                0, // coef
+                4 // largeur de berge
+            );
+            // tirant d'eau
+            sect.v.Y = 0.8;
+
+            let ru = new RegimeUniforme(sect, false);
+
+            expect(ru.Calc("k").vCalc).toBeCloseTo(0.635, precDigits);
+        });
+
+        it('LargeurBerge should be 3.474', () => {
+            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 cSnPuiss(undefined, paramCnl,
+                0.5, // coef
+                0 // largeur de berge
+            );
+            // tirant d'eau
+            sect.v.Y = 0.8;
+
+            let ru = new RegimeUniforme(sect, false);
+
+            expect(ru.Calc("LargeurBerge").vCalc).toBeCloseTo(3.474, 2);
+        });
+
+        it('Strickler should be 33.774', () => {
+            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 cSnPuiss(undefined, paramCnl,
+                0.5, // coef
+                4 // largeur de berge
+            );
+            // tirant d'eau
+            sect.v.Y = 0.8;
+
+            let ru = new RegimeUniforme(sect, false);
+
+            expect(ru.Calc("Ks").vCalc).toBeCloseTo(33.774, 2);
+        });
+
+
+        it('If should be 0.002', () => {
+            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 cSnPuiss(undefined, paramCnl,
+                0.5, // coef
+                4 // largeur de berge
+            );
+            // tirant d'eau
+            sect.v.Y = 0.8;
+
+            let ru = new RegimeUniforme(sect, false);
+
+            expect(ru.Calc("If").vCalc).toBeCloseTo(0.002, 2);
+        });
+
+        it('Q should be 1.421', () => {
+            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 cSnPuiss(undefined, paramCnl,
+                0.5, // coef
+                4 // largeur de berge
+            );
+            // tirant d'eau
+            sect.v.Y = 0.8;
+
+            let ru = new RegimeUniforme(sect, false);
+
+            expect(ru.Calc("Q").vCalc).toBeCloseTo(1.421, precDigits);
+        });
+
+        it('Y should be 0.742', () => {
+            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 cSnPuiss(undefined, paramCnl,
+                0.5, // coef
+                4 // largeur de berge
+            );
+            // tirant d'eau
+            sect.v.Y = 0;
+
+            let ru = new RegimeUniforme(sect, false);
+
+            expect(ru.Calc("Y").vCalc).toBeCloseTo(0.742, precDigits);
+        });
+    });
+});