public void TestEmailAdr()
        {
            //default settings, must be reapplied because another test might have changed them
            EmailValidator.SetAsciiSpecialCharsDefault();
            EmailValidator.IsBlankAllowed = false;
            EmailValidator.IsInternationalCharSetAllowed = false;
            Assert.IsFalse(EmailValidator.IsValidEmail(""));
            Assert.IsFalse(EmailValidator.IsValidEmail("@"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a@"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a@b"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a@b."));
            Assert.IsFalse(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("@b.cd"));
            Assert.IsFalse(EmailValidator.IsValidEmail("ab.cd@"));
            Assert.IsFalse(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail(new string('a', 64) + "@" + "a." + new string('a', 255 - 2)));
            Assert.IsFalse(EmailValidator.IsValidEmail(new string('a', 64) + "@" + "a." + new string('a', 256 - 2)));
            Assert.IsFalse(EmailValidator.IsValidEmail(new string('a', 65) + "@" + "a." + new string('a', 255 - 2)));
            Assert.IsFalse(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a#[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a&[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a'*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a*[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a/[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a^[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a`[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a{[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a|[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a}[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a\"*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a([email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a)[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a,[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a:[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a;[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a<*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a>[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a[[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a\\[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a][email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("\"a Z\"@b.cd"));
            Assert.IsFalse(EmailValidator.IsValidEmail("ABC@[192.168.0.1]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("ABC@[IPv6:2001:db8:1ff::a0b:dbd0]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("试.یشی@XN--0ZWM56D.XN--HGBK6AJ7F53BBA"));

            EmailValidator.SetExtendedAsciiSpecialChars();
            Assert.IsFalse(EmailValidator.IsValidEmail(""));
            Assert.IsFalse(EmailValidator.IsValidEmail("@"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a@"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a@b"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a@b."));
            Assert.IsFalse(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("@b.cd"));
            Assert.IsFalse(EmailValidator.IsValidEmail("ab.cd@"));
            Assert.IsFalse(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail(new string('a', 64) + "@" + "a." + new string('a', 255 - 2)));
            Assert.IsFalse(EmailValidator.IsValidEmail(new string('a', 64) + "@" + "a." + new string('a', 256 - 2)));
            Assert.IsFalse(EmailValidator.IsValidEmail(new string('a', 65) + "@" + "a." + new string('a', 255 - 2)));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a#[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a&[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a'*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a*[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a/[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a^[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a`[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a{[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a|[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a}[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a\"*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a([email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a)[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a,[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a:[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a;[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a<*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a>[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a[[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a\\[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a][email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("\"a Z\"@b.cd"));
            Assert.IsFalse(EmailValidator.IsValidEmail("ABC@[192.168.0.1]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("ABC@[IPv6:2001:db8:1ff::a0b:dbd0]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("试.یشی@XN--0ZWM56D.XN--HGBK6AJ7F53BBA"));

            EmailValidator.SetExtendedQuotedAsciiSpecialChars();
            EmailValidator.IsBlankAllowed = true;
            Assert.IsFalse(EmailValidator.IsValidEmail(""));
            Assert.IsFalse(EmailValidator.IsValidEmail("@"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a@"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a@b"));
            Assert.IsFalse(EmailValidator.IsValidEmail("a@b."));
            Assert.IsFalse(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("@b.cd"));
            Assert.IsFalse(EmailValidator.IsValidEmail("ab.cd@"));
            Assert.IsFalse(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsFalse(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail(new string('a', 64) + "@" + "a." + new string('a', 255 - 2)));
            Assert.IsFalse(EmailValidator.IsValidEmail(new string('a', 64) + "@" + "a." + new string('a', 256 - 2)));
            Assert.IsFalse(EmailValidator.IsValidEmail(new string('a', 65) + "@" + "a." + new string('a', 255 - 2)));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a#[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a&[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a'*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a*[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a/[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a^[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a`[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a{[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a|[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a}[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a\"*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a([email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a)[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a,[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a:[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a;[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a<*****@*****.**"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a>[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a[[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a\\[email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("a][email protected]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("\"a Z\"@b.cd"));
            Assert.IsFalse(EmailValidator.IsValidEmail("ABC@[192.168.0.1]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("ABC@[IPv6:2001:db8:1ff::a0b:dbd0]"));
            Assert.IsTrue(EmailValidator.IsValidEmail("[email protected]"));
            Assert.IsFalse(EmailValidator.IsValidEmail("试.یشی@XN--0ZWM56D.XN--HGBK6AJ7F53BBA"));

            EmailValidator.IsInternationalCharSetAllowed = true;
            Assert.IsTrue(EmailValidator.IsValidEmail("试.یشی@XN--0ZWM56D.XN--HGBK6AJ7F53BBA"));
        }
        public void TestEmailChar()
        {
            //default settings, must be reapplied because another test might have changed them
            EmailValidator.SetAsciiSpecialCharsDefault();
            EmailValidator.IsBlankAllowed = false;
            EmailValidator.IsInternationalCharSetAllowed = false;
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\x00'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\x1F'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('!'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('"'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('#'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('$'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('%'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('&'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\''));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('('));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(')'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('*'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('+'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(','));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('-'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('.'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('/'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(' '));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('0'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('1'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('8'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('9'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(':'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(';'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('<'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('='));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('>'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('?'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('@'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('A'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('B'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('Y'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('Z'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('['));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\\'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(']'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('^'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('_'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('`'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('a'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('b'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('y'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('z'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('{'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('|'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('}'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('~'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\x7F'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('试'));

            EmailValidator.SetExtendedAsciiSpecialChars();
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\x00'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\x1F'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('!'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('"'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('#'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('$'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('%'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('&'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('\''));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('('));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(')'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('*'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('+'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(','));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('-'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('.'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('/'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(' '));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('0'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('1'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('8'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('9'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(':'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(';'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('<'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('='));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('>'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('?'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('@'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('A'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('B'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('Y'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('Z'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('['));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\\'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar(']'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('^'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('_'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('`'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('a'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('b'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('y'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('z'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('{'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('|'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('}'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('~'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\x7F'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('试'));

            EmailValidator.SetExtendedQuotedAsciiSpecialChars();
            EmailValidator.IsBlankAllowed = true;
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\x00'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\x1F'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('!'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('"'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('#'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('$'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('%'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('&'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('\''));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('('));
            Assert.IsTrue(EmailValidator.IsValidEmailChar(')'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('*'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('+'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar(','));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('-'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('.'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('/'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar(' '));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('0'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('1'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('8'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('9'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar(':'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar(';'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('<'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('='));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('>'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('?'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('@'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('A'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('B'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('Y'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('Z'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('['));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('\\'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar(']'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('^'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('_'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('`'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('a'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('b'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('y'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('z'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('{'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('|'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('}'));
            Assert.IsTrue(EmailValidator.IsValidEmailChar('~'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('\x7F'));
            Assert.IsFalse(EmailValidator.IsValidEmailChar('试'));

            EmailValidator.IsInternationalCharSetAllowed = true;
            Assert.IsTrue(EmailValidator.IsValidEmailChar('试'));
        }