Add Uncertainty Check to all 2.1 Concentration Measurement Tests (#31290)

* Fixes #31263 by adding uncertainty check to all concentration tests

* Regen after test change

* Restyled by whitespace

---------

Co-authored-by: Restyled.io <commits@restyled.io>
diff --git a/src/app/tests/suites/certification/Test_TC_CDOCONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_CDOCONC_2_1.yaml
index aefd4ae..dd3ba30 100644
--- a/src/app/tests/suites/certification/Test_TC_CDOCONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CDOCONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: CDOCONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/src/app/tests/suites/certification/Test_TC_CMOCONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_CMOCONC_2_1.yaml
index 9d1ab7f..88fd364 100644
--- a/src/app/tests/suites/certification/Test_TC_CMOCONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CMOCONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: CMOCONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/src/app/tests/suites/certification/Test_TC_FLDCONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_FLDCONC_2_1.yaml
index fa75195..3a9ca77 100644
--- a/src/app/tests/suites/certification/Test_TC_FLDCONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_FLDCONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: FLDCONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/src/app/tests/suites/certification/Test_TC_NDOCONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_NDOCONC_2_1.yaml
index 145610c..e795b77 100644
--- a/src/app/tests/suites/certification/Test_TC_NDOCONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_NDOCONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: NDOCONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/src/app/tests/suites/certification/Test_TC_OZCONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_OZCONC_2_1.yaml
index d1cf7f6..96223f3 100644
--- a/src/app/tests/suites/certification/Test_TC_OZCONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_OZCONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: OZCONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/src/app/tests/suites/certification/Test_TC_PMHCONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_PMHCONC_2_1.yaml
index 2e673e9..4f3d0c3 100644
--- a/src/app/tests/suites/certification/Test_TC_PMHCONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PMHCONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: PMHCONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/src/app/tests/suites/certification/Test_TC_PMICONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_PMICONC_2_1.yaml
index f1692ef..ea0252a 100644
--- a/src/app/tests/suites/certification/Test_TC_PMICONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PMICONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: PMICONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/src/app/tests/suites/certification/Test_TC_PMKCONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_PMKCONC_2_1.yaml
index 1045a64..26d68f0 100644
--- a/src/app/tests/suites/certification/Test_TC_PMKCONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PMKCONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: PMKCONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/src/app/tests/suites/certification/Test_TC_RNCONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_RNCONC_2_1.yaml
index fe2a4ad..dffcf2e 100644
--- a/src/app/tests/suites/certification/Test_TC_RNCONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_RNCONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: RNCONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/src/app/tests/suites/certification/Test_TC_TVOCCONC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_TVOCCONC_2_1.yaml
index 578b12c..a63ecae 100644
--- a/src/app/tests/suites/certification/Test_TC_TVOCCONC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_TVOCCONC_2_1.yaml
@@ -133,3 +133,12 @@
               type: enum8
               minValue: 0
               maxValue: 4
+
+    - label: "Step 12: TH reads from the DUT the Uncertainty attribute."
+      PICS: TVOCCONC.S.A0007
+      command: "readAttribute"
+      attribute: "Uncertainty"
+      response:
+          constraints:
+              type: single
+              minValue: 0
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
index 5a739fd..73c0b07 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
@@ -30012,6 +30012,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("CDOCONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -30056,6 +30064,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -30066,7 +30077,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -30361,6 +30372,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterCarbonDioxideConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_CMOCONC_1_1 : public TestCommandBridge {
@@ -31579,6 +31615,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("CMOCONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -31623,6 +31667,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -31633,7 +31680,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -31928,6 +31975,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterCarbonMonoxideConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_FLDCONC_1_1 : public TestCommandBridge {
@@ -33146,6 +33218,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("FLDCONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -33190,6 +33270,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -33200,7 +33283,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -33495,6 +33578,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterFormaldehydeConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_NDOCONC_1_1 : public TestCommandBridge {
@@ -34713,6 +34821,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("NDOCONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -34757,6 +34873,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -34767,7 +34886,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -35062,6 +35181,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterNitrogenDioxideConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_OZCONC_1_1 : public TestCommandBridge {
@@ -36280,6 +36424,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("OZCONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -36324,6 +36476,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -36334,7 +36489,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -36629,6 +36784,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterOzoneConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_PMHCONC_1_1 : public TestCommandBridge {
@@ -37847,6 +38027,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("PMHCONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -37891,6 +38079,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -37901,7 +38092,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -38196,6 +38387,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterPM1ConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_PMICONC_1_1 : public TestCommandBridge {
@@ -39414,6 +39630,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("PMICONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -39458,6 +39682,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -39468,7 +39695,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -39763,6 +39990,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterPM25ConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_PMKCONC_1_1 : public TestCommandBridge {
@@ -40981,6 +41233,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("PMKCONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -41025,6 +41285,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -41035,7 +41298,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -41330,6 +41593,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterPM10ConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_RNCONC_1_1 : public TestCommandBridge {
@@ -42548,6 +42836,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("RNCONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -42592,6 +42888,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -42602,7 +42901,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -42897,6 +43196,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterRadonConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_TVOCCONC_1_1 : public TestCommandBridge {
@@ -44115,6 +44439,14 @@
             }
             err = TestStep11ThReadsFromTheDutTheLevelValueAttribute_10();
             break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : Step 12: TH reads from the DUT the Uncertainty attribute.\n");
+            if (ShouldSkip("TVOCCONC.S.A0007")) {
+                NextTest();
+                return;
+            }
+            err = TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11();
+            break;
         }
 
         if (CHIP_NO_ERROR != err) {
@@ -44159,6 +44491,9 @@
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 11:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -44169,7 +44504,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 11;
+    const uint16_t mTestCount = 12;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -44464,6 +44799,31 @@
 
         return CHIP_NO_ERROR;
     }
+
+    CHIP_ERROR TestStep12ThReadsFromTheDutTheUncertaintyAttribute_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterTotalVolatileOrganicCompoundsConcentrationMeasurement alloc] initWithDevice:device endpointID:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeUncertaintyWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+            if (err != nil) {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Error: %@", err);
+            } else {
+                NSLog(@"Step 12: TH reads from the DUT the Uncertainty attribute.: Success");
+            }
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("uncertainty", "single", "single"));
+            VerifyOrReturn(CheckConstraintMinValue<float>("uncertainty", [value floatValue], 0.0f));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
 };
 
 class Test_TC_OPCREDS_1_2 : public TestCommandBridge {