コード例 #1
0
        /// <summary>
        ///   Returns a string representation of the minimal critical fault sets.
        /// </summary>
        public override string ToString()
        {
            var builder = new StringBuilder();

            builder.AppendLine(SafetyAnalysisResults.ToString());

            builder.AppendLine();
            builder.AppendLine("=======================================================================");
            builder.AppendLine("=======        Fault Activation Order Analysis: Results         =======");
            builder.AppendLine("=======================================================================");
            builder.AppendLine();

            builder.AppendLine($"Elapsed Time: {Time}");
            builder.AppendLine($"Order Relationship Count: {OrderRelationships.Values.SelectMany(r => r).Count()}");
            builder.AppendLine();

            foreach (var pair in OrderRelationships)
            {
                var relationships = pair.Value.ToArray();

                builder.AppendLine($"{{ {String.Join(", ", pair.Key.Select(f => f.Name))} }}");

                if (relationships.Length == 0)
                {
                    builder.AppendLine("    no order relationships exist");
                }
                else
                {
                    var i = 1;
                    foreach (var relationship in pair.Value)
                    {
                        builder.AppendLine($"    ({i}) {relationship}");
                        ++i;
                    }
                }
            }

            return(builder.ToString());
        }