diff --git a/spec/iterator/named_iterable_value.spec.ts b/spec/iterator/named_iterable_value.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a3e68602f5c98c547b451fc553e18d0f25a424b1
--- /dev/null
+++ b/spec/iterator/named_iterable_value.spec.ts
@@ -0,0 +1,134 @@
+import { ExtraResults, Result, ResultElement, BaseParam, ParamDomainValue } from "../../src";
+
+/**
+ * IMPORTANT !
+ * Décommenter temporairement la ligne suivante (import { } from "./mock_jasmine")
+ * Pour exécuter ce code dans le débugger.
+ * Faire de même avec le fichier test_func.ts
+ */
+// import { describe, expect, it, xdescribe, xit } from "../mock_jasmine";
+
+function testBaseParamValues(vals: number[]): BaseParam {
+    const p: BaseParam = new BaseParam("aa", ParamDomainValue.ANY);
+
+    p.paramValues.setValues(vals);
+
+    let n = 0;
+    for (const v of p.valuesIterator)
+        expect(v).toEqual(vals[n++]);
+
+    expect(n).toEqual(vals.length);
+
+    return p;
+}
+
+function testResultValues(vals: number[]): Result {
+    const r: Result = new Result();
+
+    for (const v of vals)
+        r.addResultElement(new ResultElement(v));
+
+    let n = 0;
+    for (const v of r.valuesIterator)
+        expect(v).toEqual(vals[n++]);
+
+    expect(n).toEqual(vals.length);
+
+    return r;
+}
+
+function testExtraResultsValues(vals: number[]): ExtraResults {
+    const ers: ExtraResults = new ExtraResults("aa");
+
+    for (const v of vals)
+        ers.addValue(v);
+
+    let n = 0;
+    for (const v of ers.valuesIterator)
+        expect(v).toEqual(vals[n++]);
+
+    expect(n).toEqual(vals.length);
+
+    return ers;
+}
+
+describe("NamedIterableValues  : ", () => {
+    describe("BaseParam  : ", () => {
+        it("test 1", () => {
+            const name = "aa";
+            const p: BaseParam = new BaseParam(name, ParamDomainValue.ANY);
+            expect(p.name).toEqual(name);
+        });
+
+        it("test 2", () => {
+            const vals: number[] = [];
+            const p = testBaseParamValues(vals);
+            expect(p.hasMultipleValues).toBeFalsy();
+        });
+
+        it("test 3", () => {
+            const vals: number[] = [0];
+            const p = testBaseParamValues(vals);
+            expect(p.hasMultipleValues).toBeFalsy();
+        });
+
+        it("test 4", () => {
+            const vals: number[] = [0, 1];
+            const p = testBaseParamValues(vals);
+            expect(p.hasMultipleValues).toBeTruthy();
+        });
+    });
+
+    describe("Result  : ", () => {
+        it("test 1", () => {
+            const name = "aa";
+            const r: Result = new Result(0);
+            r.name = name;
+            expect(r.name).toEqual(name);
+        });
+
+        it("test 2", () => {
+            const vals: number[] = [];
+            const r = testResultValues(vals);
+            expect(r.hasMultipleValues).toBeFalsy();
+        });
+
+        it("test 3", () => {
+            const vals: number[] = [0];
+            const r = testResultValues(vals);
+            expect(r.hasMultipleValues).toBeFalsy();
+        });
+
+        it("test 3", () => {
+            const vals: number[] = [0, 1];
+            const r = testResultValues(vals);
+            expect(r.hasMultipleValues).toBeTruthy();
+        });
+    });
+
+    describe("ExtraResults  : ", () => {
+        it("test 1", () => {
+            const name = "aa";
+            const ers: ExtraResults = new ExtraResults(name);
+            expect(ers.name).toEqual(name);
+        });
+
+        it("test 2", () => {
+            const vals: number[] = [];
+            const ers = testExtraResultsValues(vals);
+            expect(ers.hasMultipleValues).toBeFalsy();
+        });
+
+        it("test 3", () => {
+            const vals: number[] = [0];
+            const ers = testExtraResultsValues(vals);
+            expect(ers.hasMultipleValues).toBeFalsy();
+        });
+
+        it("test 4", () => {
+            const vals: number[] = [0, 1];
+            const ers = testExtraResultsValues(vals);
+            expect(ers.hasMultipleValues).toBeTruthy();
+        });
+    });
+});