public void FromDelimitedString_WithAllProperties_ReturnsCorrectlyInitializedFields()
        {
            ISegment expected = new Om1Segment
            {
                SequenceNumberTestObservationMasterFile = 1,
                ProducersServiceTestObservationId       = new CodedWithExceptions
                {
                    Identifier = "2"
                },
                PermittedDataTypes = new string[]
                {
                    "3"
                },
                SpecimenRequired = "4",
                ProducerId       = new CodedWithExceptions
                {
                    Identifier = "5"
                },
                ObservationDescription = new Text
                {
                    Value = "6"
                },
                OtherServiceTestObservationIdsForTheObservation = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "7"
                    }
                },
                OtherNames = new string[]
                {
                    "8"
                },
                PreferredReportNameForTheObservation          = "9",
                PreferredShortNameOrMnemonicForTheObservation = "10",
                PreferredLongNameForTheObservation            = "11",
                Orderability = "12",
                IdentityOfInstrumentUsedToPerformThisStudy = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "13"
                    }
                },
                CodedRepresentationOfMethod = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "14"
                    }
                },
                PortableDeviceIndicator = "15",
                ObservationProducingDepartmentSection = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "16"
                    }
                },
                TelephoneNumberOfSection = new ExtendedTelecommunicationNumber
                {
                    TelephoneNumber = "17"
                },
                NatureOfServiceTestObservation = new CodedWithExceptions
                {
                    Identifier = "18"
                },
                ReportSubheader = new CodedWithExceptions
                {
                    Identifier = "19"
                },
                ReportDisplayOrder = "20",
                DateTimeStampForAnyChangeInDefinitionForTheObservation = new DateTime(2020, 1, 21, 0, 0, 21),
                EffectiveDateTimeOfChange = new DateTime(2020, 1, 22, 0, 0, 22),
                TypicalTurnAroundTime     = 23,
                ProcessingTime            = 24,
                ProcessingPriority        = new string[]
                {
                    "25"
                },
                ReportingPriority = "26",
                OutsideSitesWhereObservationMayBePerformed = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "27"
                    }
                },
                AddressOfOutsideSites = new ExtendedAddress[]
                {
                    new ExtendedAddress
                    {
                        StreetAddress = new StreetAddress
                        {
                            StreetOrMailingAddress = "28"
                        }
                    }
                },
                PhoneNumberOfOutsideSite = new ExtendedTelecommunicationNumber
                {
                    TelephoneNumber = "29"
                },
                ConfidentialityCode = new CodedWithExceptions
                {
                    Identifier = "30"
                },
                ObservationsRequiredToInterpretThisObservation = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "31"
                    }
                },
                InterpretationOfObservations = new Text
                {
                    Value = "32"
                },
                ContraindicationsToObservations = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "33"
                    }
                },
                ReflexTestsObservations = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "34"
                    }
                },
                RulesThatTriggerReflexTesting = new Text[]
                {
                    new Text
                    {
                        Value = "35"
                    }
                },
                FixedCannedMessage = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "36"
                    }
                },
                PatientPreparation = new Text[]
                {
                    new Text
                    {
                        Value = "37"
                    }
                },
                ProcedureMedication = new CodedWithExceptions
                {
                    Identifier = "38"
                },
                FactorsThatMayAffectTheObservation = new Text
                {
                    Value = "39"
                },
                ServiceTestObservationPerformanceSchedule = new string[]
                {
                    "40"
                },
                DescriptionOfTestMethods = new Text
                {
                    Value = "41"
                },
                KindOfQuantityObserved = new CodedWithExceptions
                {
                    Identifier = "42"
                },
                PointVersusInterval = new CodedWithExceptions
                {
                    Identifier = "43"
                },
                ChallengeInformation = new Text
                {
                    Value = "44"
                },
                RelationshipModifier = new CodedWithExceptions
                {
                    Identifier = "45"
                },
                TargetAnatomicSiteOfTest = new CodedWithExceptions
                {
                    Identifier = "46"
                },
                ModalityOfImagingMeasurement = new CodedWithExceptions
                {
                    Identifier = "47"
                },
                ExclusiveTest               = "48",
                DiagnosticServSectId        = "49",
                TaxonomicClassificationCode = new CodedWithExceptions
                {
                    Identifier = "50"
                },
                OtherNamesB = new string[]
                {
                    "51"
                },
                ReplacementProducersServiceTestObservationId = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "52"
                    }
                },
                PriorResultsInstructions = new Text[]
                {
                    new Text
                    {
                        Value = "53"
                    }
                },
                SpecialInstructions = new Text
                {
                    Value = "54"
                },
                TestCategory = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "55"
                    }
                },
                ObservationIdAssociatedWithProducersServiceTestObservationId = new CodedWithExceptions
                {
                    Identifier = "56"
                },
                TypicalTurnAroundTimeWithUnits = new CompositeQuantityWithUnits
                {
                    Quantity = 57
                },
                GenderRestriction = new CodedWithExceptions[]
                {
                    new CodedWithExceptions
                    {
                        Identifier = "58"
                    }
                },
                AgeRestriction = new NumericRange[]
                {
                    new NumericRange
                    {
                        LowValue = 59
                    }
                }
            };

            ISegment actual = new Om1Segment();

            actual.FromDelimitedString("OM1|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|20200121000021|20200122000022|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59");

            expected.Should().BeEquivalentTo(actual);
        }