[
    ["", "errNoDomain"],
    ["\r", "errCRNoLF"],
    ["test", "errNoDomain"],
    ["@", "errNoLocalPart"],
    ["test@", "errNoDomain"],
    ["test@io", "valid"],
    ["@io", "errNoLocalPart"],
    ["@iana.org", "errNoLocalPart"],
    ["test@iana.org", "valid"],
    ["test@nominet.org.uk", "valid"],
    ["test@about.museum", "valid"],
    ["a@iana.org", "valid"],
    ["test@e.com", "dnsWarnNoRecord"],
    ["test@iana.a", "dnsWarnNoRecord"],
    ["test.test@iana.org", "valid"],
    [".test@iana.org", "errDotStart"],
    ["test.@iana.org", "errDotEnd"],
    ["test..iana.org", "errConsecutiveDots"],
    ["test_exa-mple.com", "errNoDomain"],
    ["!#$%&`*+/=?^`{|}~@iana.org", "valid"],
    ["test\\@test@iana.org", "errExpectingATEXT"],
    ["123@iana.org", "valid"],
    ["test@123.com", "valid"],
    ["test@iana.123", "rfc5321TLDNumeric"],
    ["test@255.255.255.255", "rfc5321TLDNumeric"],
    ["abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@iana.org", "valid"],
    ["abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklmn@iana.org", "rfc5322LocalTooLong"],
    ["test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm", "rfc5322LabelTooLong"],
    ["test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.com", "dnsWarnNoRecord"],
    ["test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm.com", "rfc5322LabelTooLong"],
    ["test@mason-dixon.com", "valid"],
    ["test@-iana.org", "errDomainHyphenStart"],
    ["test@iana-.com", "errDomainHyphenEnd"],
    ["test@iana.co-uk", "dnsWarnNoRecord"],
    ["test@.iana.org", "errDotStart"],
    ["test@iana.org.", "errDotEnd"],
    ["test@iana..com", "errConsecutiveDots"],
    ["a@a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v", "dnsWarnNoRecord"],
    ["abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghi", "dnsWarnNoRecord"],
    ["abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghij", "rfc5322TooLong"],
    ["a@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.hij", "rfc5322TooLong"],
    ["a@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg.hijk", "rfc5322DomainTooLong"],
    ["\"\r", "errCRNoLF"],
    ["\"test\"@iana.org", "rfc5321QuotedString"],
    ["\"\"@iana.org", "rfc5321QuotedString"],
    ["\"\"\"@iana.org", "errExpectingATEXT"],
    ["\"\\a\"@iana.org", "rfc5321QuotedString"],
    ["\"\\\"\"@iana.org", "rfc5321QuotedString"],
    ["\"\\\"@iana.org", "errUnclosedQuotedString"],
    ["\"\\\\\"@iana.org", "rfc5321QuotedString"],
    ["test\"@iana.org", "errExpectingATEXT"],
    ["\"test@iana.org", "errUnclosedQuotedString"],
    ["\"test\"test@iana.org", "errATEXTAfterQS"],
    ["test\"text\"@iana.org", "errExpectingATEXT"],
    ["\"test\"\"test\"@iana.org", "errExpectingATEXT"],
    ["\"test\".\"test\"@iana.org", "deprecatedLocalPart"],
    ["\"test\\ test\"@iana.org", "rfc5321QuotedString"],
    ["\"test\".test@iana.org", "deprecatedLocalPart"],
    ["\"test\u0000\"@iana.org", "errExpectingQTEXT"],
    ["\"test\\\u0000\"@iana.org", "deprecatedQP"],
    ["\"test\r\n test\"@iana.org", "cfwsFWS"],
    ["\"abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghj\"@iana.org", "rfc5322LocalTooLong"],
    ["\"abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefg\\h\"@iana.org", "rfc5322LocalTooLong"],
    ["test@[255.255.255.255]", "rfc5321AddressLiteral"],
    ["test@a[255.255.255.255]", "errExpectingATEXT"],
    ["test@[255.255.255]", "rfc5322DomainLiteral"],
    ["test@[255.255.255.255.255]", "rfc5322DomainLiteral"],
    ["test@[255.255.255.256]", "rfc5322DomainLiteral"],
    ["test@[1111:2222:3333:4444:5555:6666:7777:8888]", "rfc5322DomainLiteral"],
    ["test@[IPv6:1111:2222:3333:4444:5555:6666:7777]", "rfc5322IPv6GroupCount"],
    ["test@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888]", "rfc5321AddressLiteral"],
    ["test@[IPv6:1111:2222:3333:4444:5555:6666:7777:8888:9999]", "rfc5322IPv6GroupCount"],
    ["test@[IPv6:1111:2222:3333:4444:5555:6666:7777:888G]", "rfc5322IPv6BadCharacter"],
    ["test@[IPv6:1111:2222:3333:4444:5555:6666::8888]", "deprecatedIPv6"],
    ["test@[IPv6:1111:2222:3333:4444:5555::8888]", "rfc5321AddressLiteral"],
    ["test@[IPv6:1111:2222:3333:4444:5555:6666::7777:8888]", "rfc5322IPv6MaxGroups"],
    ["test@[IPv6::3333:4444:5555:6666:7777:8888]", "rfc5322IPv6ColonStart"],
    ["test@[IPv6:::3333:4444:5555:6666:7777:8888]", "rfc5321AddressLiteral"],
    ["test@[IPv6:1111::4444:5555::8888]", "rfc5322IPv62x2xColon"],
    ["test@[IPv6:::]", "rfc5321AddressLiteral"],
    ["test@[IPv6:1111:2222:3333:4444:5555:255.255.255.255]", "rfc5322IPv6GroupCount"],
    ["test@[IPv6:1111:2222:3333:4444:5555:6666:255.255.255.255]", "rfc5321AddressLiteral"],
    ["test@[IPv6:1111:2222:3333:4444:5555:6666:7777:255.255.255.255]", "rfc5322IPv6GroupCount"],
    ["test@[IPv6:1111:2222:3333:4444::255.255.255.255]", "rfc5321AddressLiteral"],
    ["test@[IPv6:1111:2222:3333:4444:5555:6666::255.255.255.255]", "rfc5322IPv6MaxGroups"],
    ["test@[IPv6:1111:2222:3333:4444:::255.255.255.255]", "rfc5322IPv62x2xColon"],
    ["test@[IPv6::255.255.255.255]", "rfc5322IPv6ColonStart"],
    [" test @iana.org", "deprecatedCFWSNearAt"],
    ["test@ iana .com", "deprecatedCFWSNearAt"],
    ["test . test@iana.org", "deprecatedFWS"],
    ["\r\n test@iana.org", "cfwsFWS"],
    ["\r\n \r\n test@iana.org", "deprecatedFWS"],
    ["(\r", "errCRNoLF"],
    ["(comment)test@iana.org", "cfwsComment"],
    ["((comment)test@iana.org", "errUnclosedComment"],
    ["(comment(comment))test@iana.org", "cfwsComment"],
    ["test@(comment)iana.org", "deprecatedCFWSNearAt"],
    ["test(comment)@iana.org", "deprecatedCFWSNearAt"],
    ["test(comment)test@iana.org", "errATEXTAfterCFWS"],
    ["test@(comment)[255.255.255.255]", "deprecatedCFWSNearAt"],
    ["(comment)abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiklm@iana.org", "cfwsComment"],
    ["test@(comment)abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghikl.com", "deprecatedCFWSNearAt"],
    ["(comment)test@abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghik.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghik.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.abcdefghijklmnopqrstuvwxyzabcdefghijk.abcdefghijklmnopqrstu", "cfwsComment"],
    ["test@iana.org\n", "errExpectingATEXT"],
    ["test@xn--hxajbheg2az3al.xn--jxalpdlp", "dnsWarnNoRecord"],
    ["xn--test@iana.org", "valid"],
    ["test@iana.org-", "errDomainHyphenEnd"],
    ["\"test@iana.org", "errUnclosedQuotedString"],
    ["(test@iana.org", "errUnclosedComment"],
    ["test@(iana.org", "errUnclosedComment"],
    ["test@[1.2.3.4", "errUnclosedDomainLiteral"],
    ["\"test\\\"@iana.org", "errUnclosedQuotedString"],
    ["(comment\\)test@iana.org", "errUnclosedComment"],
    ["test@iana.org(comment\\)", "errUnclosedComment"],
    ["test@iana.org(comment\\", "errBackslashEnd"],
    ["test@[RFC-5322-domain-literal]", "rfc5322DomainLiteral"],
    ["test@[RFC-5322]-domain-literal]", "errATEXTAfterDomainLiteral"],
    ["test@[RFC-5322-[domain-literal]", "errExpectingDTEXT"],
    ["test@[", "errExpectingDTEXT"],
    ["test@[\u0007]", "rfc5322DomainLiteralOBSDText"],
    ["test@[RFC-5322-\\\u0007-domain-literal]", "rfc5322DomainLiteralOBSDText"],
    ["test@[RFC-5322-\\\t-domain-literal]", "rfc5322DomainLiteralOBSDText"],
    ["test@[RFC-5322-\\]-domain-literal]", "rfc5322DomainLiteralOBSDText"],
    ["test@[RFC-5322--domain-literal]", "rfc5322DomainLiteralOBSDText"],
    ["test@[RFC-5322-domain-literal\\]", "errUnclosedDomainLiteral"],
    ["test@[RFC-5322-domain-literal\\", "errBackslashEnd"],
    ["test@[RFC 5322 domain literal]", "rfc5322DomainLiteral"],
    ["test@[RFC-5322-domain-literal] (comment)", "rfc5322DomainLiteral"],
    ["@iana.org", "errExpectingATEXT"],
    ["test@.org", "errExpectingATEXT"],
    ["\"\"@iana.org", "deprecatedQTEXT"],
    ["\"\"@iana.org", "errExpectingQTEXT"],
    ["\"\\\"@iana.org", "deprecatedQP"],
    ["()test@iana.org", "deprecatedCTEXT"],
    ["()test@iana.org", "errExpectingCTEXT"],
    ["test@iana.org\r", "errCRNoLF"],
    ["\rtest@iana.org", "errCRNoLF"],
    ["\"\rtest\"@iana.org", "errCRNoLF"],
    ["(\r)test@iana.org", "errCRNoLF"],
    ["test@iana.org(\r)", "errCRNoLF"],
    ["\ntest@iana.org", "errExpectingATEXT"],
    ["\"\n\"@iana.org", "errExpectingQTEXT"],
    ["\"\\\n\"@iana.org", "deprecatedQP"],
    ["(\n)test@iana.org", "errExpectingCTEXT"],
    ["\u0007@iana.org", "errExpectingATEXT"],
    ["test@\u0007.org", "errExpectingATEXT"],
    ["\"\u0007\"@iana.org", "deprecatedQTEXT"],
    ["\"\\\u0007\"@iana.org", "deprecatedQP"],
    ["(\u0007)test@iana.org", "deprecatedCTEXT"],
    ["\r\ntest@iana.org", "errFWSCRLFEnd"],
    ["\r\n \r\ntest@iana.org", "errFWSCRLFEnd"],
    [" \r\ntest@iana.org", "errFWSCRLFEnd"],
    [" \r\n test@iana.org", "cfwsFWS"],
    [" \r\n \r\ntest@iana.org", "errFWSCRLFEnd"],
    [" \r\n\r\ntest@iana.org", "errFWSCRLFx2"],
    [" \r\n\r\n test@iana.org", "errFWSCRLFx2"],
    ["test@iana.org\r\n ", "cfwsFWS"],
    ["test@iana.org\r\n \r\n ", "deprecatedFWS"],
    ["test@iana.org\r\n", "errFWSCRLFEnd"],
    ["test@iana.org \r", "errCRNoLF"],
    ["test@iana.org\r\n \r\n", "errFWSCRLFEnd"],
    ["test@iana.org \r\n", "errFWSCRLFEnd"],
    ["test@iana.org \r\n ", "cfwsFWS"],
    ["test@iana.org \r\n \r\n", "errFWSCRLFEnd"],
    ["test@iana.org \r\n\r\n", "errFWSCRLFx2"],
    ["test@iana.org \r\n\r\n ", "errFWSCRLFx2"],
    ["test@iana. org", "deprecatedFWS"],
    ["test@[\r", "errCRNoLF"],
    ["test@[\r\n", "errFWSCRLFEnd"],
    [" test@iana.org", "cfwsFWS"],
    ["test@iana.org ", "cfwsFWS"],
    ["test@[IPv6:1::2:]", "rfc5322IPv6ColonEnd"],
    ["\"test\\©\"@iana.org", "errExpectingQPair"],
    ["test@iana/icann.org", "rfc5322Domain"],
    ["test@iana!icann.org", "rfc5322Domain"],
    ["test@iana?icann.org", "rfc5322Domain"],
    ["test@iana^icann.org", "rfc5322Domain"],
    ["test@iana{icann}.org", "rfc5322Domain"],
    ["test.(comment)test@iana.org", "deprecatedComment"],
    ["test@iana.(comment)org", "deprecatedComment"],
    ["test@iana(comment)iana.org", "errATEXTAfterCFWS"],
    ["(comment\r\n comment)test@iana.org", "cfwsFWS"],
    ["test@org", "rfc5321TLD"],
    ["test@example.com", "dnsWarnNoMXRecord"],
    ["test@nic.no", "dnsWarnNoRecord"]
]
