public void Addresses_WhenAllAttributesNotEqual_HaveDifferentHashCodes(string[] address1Values, string[] address2Values)
        {
            // Arrange
            var address1 = new UnitedStatesAddress(new FakeName(address1Values[0]), address1Values[1], address1Values[2], address1Values[3], address1Values[4], address1Values[5], address1Values[6]);
            var address2 = new UnitedStatesAddress(new FakeName(address2Values[0]), address2Values[1], address2Values[2], address2Values[3], address2Values[4], address2Values[5], address2Values[6]);

            // Act
            var hashCodesAreEqual = (address1.GetHashCode() == address2.GetHashCode());

            // Arrange
            hashCodesAreEqual.Should().BeFalse();
        }
        public void Addresses_WhenEqual_HaveTheSameHashCode()
        {
            // Arrange
            var address1 = new UnitedStatesAddress(new FakeName(), "bar", "qux", "baz", "boo", "hee", "haw");
            var address2 = new UnitedStatesAddress(new FakeName(), "bar", "qux", "baz", "boo", "hee", "haw");

            // Act
            var hashCodesAreEqual = (address1.GetHashCode() == address2.GetHashCode());

            // Arrange
            hashCodesAreEqual.Should().BeTrue();
        }