public static Rule Rule092_ColumnsMustEndWithAClassWord()
        {
            Rule r = new Rule("All logical names are expected to end with a class term, or a combination thereof, that semantically represents the data type of a data element.", 92, "System.Data.DataColumn");

            r.Consequent.RuleExpressions.Add(TestData_RuleExpressions.LogicalName_EndsWithAny_CLASSWORDS());
            return(r);
        }
        internal static Rule Rule123_ColumnsMustBeMoreThanAClassWord()
        {
            Rule r = new Rule("Attribute names need to be more than class words.", 123, "System.Data.DataColumn");

            r.Antecedent.RuleExpressions.Add(TestData_RuleExpressions.LogicalName_EndsWithAny_CLASSWORDS());
            r.Consequent.RuleExpressions.Add(new RuleExpression("LogicalName", ComparisonConditionEnum.Contains, "more than a classword"));
            return(r);
        }
        internal static Rule Rule079_A_field_that_contains_TSO()
        {
            Rule rule = new Rule("A field that contains a TSO ID should be a character datatype with a length of 5.", 79, "System.Data.DataColumn");

            rule.Antecedent.RuleExpressions.Add(TestData_RuleExpressions.PhysicalName_EndsWith_Term("tsoid"));
            RuleExpressionGroup g = new RuleExpressionGroup(RuleExpressionGroup.LogicOperatorEnum.And);

            g.RuleExpressions.Add(new RuleExpression("Datatype", ComparisonConditionEnum.Contains, "char"));
            g.RuleExpressions.Add(new RuleExpression("DatatypeLength", ComparisonConditionEnum.EqualTo, 5));
            rule.Consequent.RuleExpressionGroups.Add(g);
            return(rule);
        }
        public static Rule Columns_LogicalName_EndInTimeStamp_ExpectAppropriatePhysicalDatatype()
        {
            Rule r = new Rule();

            r.ID                = 2;
            r.Description       = "Expect columns that end in Timestamp or Time Stamp to be a datetime or related datatype";
            r.AppliesToTypeName = typeof(System.Data.DataColumn).FullName;

            r.Antecedent.LogicOperator = RuleExpressionGroup.LogicOperatorEnum.Or;
            r.Antecedent.RuleExpressions.Add(TestData_RuleExpressions.LogicalName_EndsWith_Timestamp());
            r.Antecedent.RuleExpressions.Add(TestData_RuleExpressions.LogicalName_EndsWith_Time_Stamp());
            r.Antecedent.RuleExpressions.Add(TestData_RuleExpressions.Caption_EndsWith_Time_Stamp());

            r.Consequent.RuleExpressions.Add(TestData_RuleExpressions.Physical_Datatype_Is_Timestamp());
            return(r);
        }