public void TestSinceParameterOnAttribute()
        {
            var fea = new FhirElementAttribute("test")
            {
                Since = FhirRelease.STU3
            };

            Assert.IsFalse(fea.AppliesToVersion(FhirRelease.DSTU1));
            Assert.IsFalse(fea.AppliesToVersion(FhirRelease.DSTU2));
            Assert.IsTrue(fea.AppliesToVersion(FhirRelease.STU3));
            Assert.IsTrue(fea.AppliesToVersion(FhirRelease.R4));
            Assert.IsTrue(fea.AppliesToVersion((FhirRelease)int.MaxValue));

            fea = new FhirElementAttribute("test2")
            {
            };
            Assert.IsTrue(fea.AppliesToVersion(FhirRelease.DSTU1));
            Assert.IsTrue(fea.AppliesToVersion(FhirRelease.DSTU2));
            Assert.IsTrue(fea.AppliesToVersion(FhirRelease.STU3));
            Assert.IsTrue(fea.AppliesToVersion((FhirRelease)int.MaxValue));

            var fra = new ReferencesAttribute()
            {
                Since = FhirRelease.STU3
            };

            Assert.IsFalse(fra.AppliesToVersion(FhirRelease.DSTU1));
            Assert.IsFalse(fra.AppliesToVersion(FhirRelease.DSTU2));
            Assert.IsTrue(fra.AppliesToVersion(FhirRelease.STU3));
            Assert.IsTrue(fra.AppliesToVersion(FhirRelease.R4));
            Assert.IsTrue(fra.AppliesToVersion((FhirRelease)int.MaxValue));
        }
        public void TestSinceParameterOnAttribute()
        {
            var fea = new FhirElementAttribute("test")
            {
                Since = "3.2.0"
            };

            Assert.IsFalse(fea.AppliesToVersion("1.0"));
            Assert.IsFalse(fea.AppliesToVersion("3.0.1"));
            Assert.IsTrue(fea.AppliesToVersion("3.2"));
            Assert.IsTrue(fea.AppliesToVersion("3.2.0"));
            Assert.IsTrue(fea.AppliesToVersion("3.2.1"));
            Assert.IsTrue(fea.AppliesToVersion("4.0.2"));
            Assert.IsFalse(fea.AppliesToVersion(""));
            Assert.IsFalse(fea.AppliesToVersion("ewout"));
            Assert.IsTrue(fea.AppliesToVersion(null));

            fea = new FhirElementAttribute("test2")
            {
            };
            Assert.IsTrue(fea.AppliesToVersion("1.0"));
            Assert.IsTrue(fea.AppliesToVersion("3.2.0"));
            Assert.IsTrue(fea.AppliesToVersion("4.0.2"));
            Assert.IsTrue(fea.AppliesToVersion(""));
            Assert.IsTrue(fea.AppliesToVersion("ewout"));
            Assert.IsTrue(fea.AppliesToVersion(null));

            var fra = new ReferencesAttribute()
            {
                Since = "4.0.1"
            };

            Assert.IsFalse(fra.AppliesToVersion("1.0"));
            Assert.IsFalse(fra.AppliesToVersion("3.0.1"));
            Assert.IsFalse(fra.AppliesToVersion("4.0"));
            Assert.IsTrue(fra.AppliesToVersion("4.0.2"));
            Assert.IsTrue(fra.AppliesToVersion("4.1"));
            Assert.IsFalse(fra.AppliesToVersion(""));
            Assert.IsFalse(fra.AppliesToVersion("ewout"));
            Assert.IsTrue(fra.AppliesToVersion(null));
        }