Esempio n. 1
0
        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 _));
        }
Esempio n. 2
0
        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 _));
        }
Esempio n. 3
0
        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 _));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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 _));
        }