diff --git a/Sources/Tests/UnitTests/Common/EveryNodeSurvivesEveryPipelineTest.cs b/Sources/Tests/UnitTests/Common/EveryNodeSurvivesEveryPipelineTest.cs
new file mode 100644
index 000000000..665914695
--- /dev/null
+++ b/Sources/Tests/UnitTests/Common/EveryNodeSurvivesEveryPipelineTest.cs
@@ -0,0 +1,122 @@
+//
+// Copyright (c) 2019-2026 Angouri.
+// AngouriMath is licensed under MIT.
+// Details: https://github.com/asc-community/AngouriMath/blob/master/LICENSE.md.
+// Website: https://am.angouri.org.
+//
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Threading.Tasks;
+using AngouriMath;
+using AngouriMath.Extensions;
+using Xunit;
+
+namespace AngouriMath.Tests.Common
+{
+ ///
+ /// Every node survives every pipeline: no crash, no hang, no exception the caller has no
+ /// reason to expect.
+ ///
+ ///
+ ///
+ /// The generalisation of LimitTerminatesOnEveryNodeTest. Limits were where the
+ /// hole showed — seven node types killed the process by inheriting a default that
+ /// returned the node instead of — but nothing made limits special.
+ /// A node reaches a dozen pipelines and Docs/Contributing/AddingNode.cs lists
+ /// them; anything missed there is missed silently, because the node that breaks is
+ /// exactly the one nobody wrote a test for.
+ ///
+ ///
+ /// So the node types are enumerated rather than listed, and each is put through every
+ /// pipeline. What is asserted is only what every pipeline owes a caller: return, in
+ /// finite time, either an answer or an .
+ /// Not that the answer is right — the per-node tests are for that — and not that there
+ /// is one at all, since an unevaluated node is a legitimate answer here.
+ ///
+ /// https://github.com/asc-community/AngouriMath/issues/829
+ ///
+ [Trait("Area", "Common")]
+ public sealed class EveryNodeSurvivesEveryPipelineTest
+ {
+ private static readonly Entity.Variable X = MathS.Var("x");
+
+ public static IEnumerable