public void Test_RegexMultipleMatches(bool isReport) { var rule = new IsIdentifiableRule() { Action = isReport ? RuleAction.Report : RuleAction.Ignore, IfColumn = "Modality", IfPattern = "[0-9],", As = FailureClassification.Date }; Assert.AreEqual(isReport? RuleAction.Report : RuleAction.Ignore, rule.Apply("MODALITY", "1,2,3", out IEnumerable <FailurePart> bad)); if (isReport) { var b = bad.ToArray(); Assert.AreEqual(2, b.Length); Assert.AreEqual("1,", b[0].Word); Assert.AreEqual(FailureClassification.Date, b[0].Classification); Assert.AreEqual(0, b[0].Offset); Assert.AreEqual("2,", b[1].Word); Assert.AreEqual(FailureClassification.Date, b[1].Classification); Assert.AreEqual(2, b[1].Offset); } else { Assert.IsEmpty(bad); } Assert.AreEqual(RuleAction.None, rule.Apply("ImageType", "PRIMARY", out _)); }
public void TestOneRule_NoColumn_WithPattern(bool isReport) { var rule = new IsIdentifiableRule() { Action = isReport ? RuleAction.Report : RuleAction.Ignore, IfPattern = "^CT$", As = FailureClassification.Date }; Assert.AreEqual(isReport? RuleAction.Report : RuleAction.Ignore, rule.Apply("Modality", "CT", out _)); Assert.AreEqual(isReport? RuleAction.Report : RuleAction.Ignore, rule.Apply("ImageType", "CT", out _)); //ignore both because no restriction on column Assert.AreEqual(RuleAction.None, rule.Apply("ImageType", "PRIMARY", out _)); }
public void TestOneRule_IsColumnMatch_WithPattern(bool isReport) { var rule = new IsIdentifiableRule() { Action = isReport ? RuleAction.Report : RuleAction.Ignore, IfColumn = "Modality", IfPattern = "^CT$", As = FailureClassification.Date }; Assert.AreEqual(isReport? RuleAction.Report : RuleAction.Ignore, rule.Apply("Modality", "CT", out _)); Assert.AreEqual(RuleAction.None, rule.Apply("Modality", "MR", out _)); Assert.AreEqual(RuleAction.None, rule.Apply("ImageType", "PRIMARY", out _)); }
public void TestOneRule_NoColumn_NoPattern(bool isReport) { //rule is to ignore everything var rule = new IsIdentifiableRule() { Action = isReport ? RuleAction.Report : RuleAction.Ignore, }; var ex = Assert.Throws <Exception>(() => rule.Apply("Modality", "CT", out _)); Assert.AreEqual("Illegal rule setup. You must specify either a column or a pattern (or both)", ex.Message); }
public void TestOneRule_IsColumnMatch_NoPattern(bool isReport) { var rule = new IsIdentifiableRule() { Action = isReport ? RuleAction.Report : RuleAction.Ignore, IfColumn = "Modality", As = FailureClassification.Date }; Assert.AreEqual(isReport? RuleAction.Report : RuleAction.Ignore, rule.Apply("MODALITY", "CT", out IEnumerable <FailurePart> bad)); if (isReport) { Assert.AreEqual(FailureClassification.Date, bad.Single().Classification); } else { Assert.IsEmpty(bad); } Assert.AreEqual(RuleAction.None, rule.Apply("ImageType", "PRIMARY", out _)); }