상속: IAddressData
        internal void LoadInternalAddressData()
        {
            var cszList = new List<ICityStateZipData>();

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("EfficientlyLazy.IdentityGenerator.DataFiles.CityStateZips.data"))
            {
                if (stream == null)
                {
                    throw new InvalidOperationException("CityStateZips.data Embedded Resource Not Found");
                }

                using (var cr = new GZipStream(stream, CompressionMode.Decompress))
                {
                    using (var sr = new StreamReader(cr))
                    {
                        string line;

                        while ((line = sr.ReadLine()) != null)
                        {
                            var parts = line.Split('|');

                            var stateName = parts[0];
                            var city = parts[2];
                            var stateAbbreviation = parts[1];
                            var zip = parts[3];

                            cszList.Add(new CityStateZipData
                            {
                                City = city,
                                StateAbbreviation = stateAbbreviation,
                                StateName = stateName,
                                ZipCode = zip
                            });
                        }
                    }
                }
            }

            var streetTypes = new List<string>
                    {
                        "St",
                        "Ave"
                    };

            var directions = new List<string>
                    {
                        "N",
                        "NW",
                        "W",
                        "SW",
                        "S",
                        "SE",
                        "E",
                        "NE"
                    };

            AddressData = new AddressData
                {
                    CityStateZips = cszList,
                    Directions = directions,
                    StreetTypes = streetTypes
                };
        }
        public void Configure_IncludeAddress_Specify_Data()
        {
            // Arrange
            var data = new AddressData
                {
                    CityStateZips = new List<ICityStateZipData>
                        {
                            new CityStateZipData()
                        },
                    Directions = new List<string>
                        {
                            "N"
                        },
                    StreetTypes = new List<string>
                        {
                            "St"
                        }
                };

            // Act
            var generator = Generator.Configure()
                .IncludeAddress(data)
                .Build();

            // Assert
            Assert.True(generator.IncludeAddress);
            Assert.True(((Generator)generator).AddressData.CityStateZips.Count() == 1);
            Assert.True(((Generator)generator).AddressData.Directions.Count() == 1);
            Assert.True(((Generator)generator).AddressData.StreetTypes.Count() == 1);
        }