Exemplo n.º 1
0
        public static void Run()
        {
            var text = @"I<UTOD231458907<<<<<<<<<<<<<<<
7408122F1204159UTO<<<<<<<<<<<6
ERIKSSON<<ANNA<MARIA<<<<<<<<<<";

            Console.WriteLine("TD1 code sample");
            Console.WriteLine();
            Console.WriteLine(text);
            Console.WriteLine();

            var mrzCode = MrzCode.Parse(text);

            Console.WriteLine("Code type:                {0}", mrzCode.Type);

            Console.WriteLine("DocumentType:             {0}", mrzCode[FieldType.DocumentType]);
            Console.WriteLine("CountryCode:              {0}", mrzCode[FieldType.CountryCode]);
            Console.WriteLine("DocumentNumber:           {0}", mrzCode[FieldType.DocumentNumber]);
            Console.WriteLine("DocumentNumberCheckDigit: {0}", mrzCode[FieldType.DocumentNumberCheckDigit]);
            Console.WriteLine("OptionalData1:            {0}", mrzCode[FieldType.OptionalData1]);
            Console.WriteLine("BirthDate:                {0}", mrzCode[FieldType.BirthDate]);
            Console.WriteLine("BirthDateCheckDigit:      {0}", mrzCode[FieldType.BirthDateCheckDigit]);
            Console.WriteLine("Sex:                      {0}", mrzCode[FieldType.Sex]);
            Console.WriteLine("ExpiryDate:               {0}", mrzCode[FieldType.ExpiryDate]);
            Console.WriteLine("ExpiryDateCheckDigit:     {0}", mrzCode[FieldType.ExpiryDateCheckDigit]);
            Console.WriteLine("Nationality:              {0}", mrzCode[FieldType.Nationality]);
            Console.WriteLine("OptionalData2:            {0}", mrzCode[FieldType.OptionalData2]);
            Console.WriteLine("OverallCheckDigit:        {0}", mrzCode[FieldType.OverallCheckDigit]);
            Console.WriteLine("Names:                    {0}", mrzCode[FieldType.Names]);

            Console.WriteLine();
        }
Exemplo n.º 2
0
        public static void Run()
        {
            var codes = new[]
            {
                @"I<UTOD231458907<<<<<<<<<<<<<<<
7408122F1204159UTO<<<<<<<<<<<6
ERIKSSON<<ANNA<MARIA<<<<<<<<<<",
                @"I<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<
D231458907UTO7408122F1204159<<<<<<<6",
                @"P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<
L898902C36UTO7408122F1204159ZE184226B<<<<<10",
                @"V<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<
L8988901C4XXX4009078F96121096ZE184226B<<<<<<",
                @"V<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<
L8988901C4XXX4009078F9612109<<<<<<<<"
            };

            Console.WriteLine("Parsing MRZ codes sample");
            foreach (var code in codes)
            {
                Console.WriteLine();
                Console.WriteLine(code);
                Console.WriteLine();

                var mrzCode = MrzCode.Parse(code);

                Console.WriteLine("Code type: {0}", mrzCode.Type);

                foreach (var fieldType in mrzCode.FieldTypes)
                {
                    Console.WriteLine("{0}: {1}", fieldType, mrzCode[fieldType]);
                }
            }
        }
Exemplo n.º 3
0
        public static void Run()
        {
            var text = @"P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<
L898902C36UTO7408122F1204159ZE184226B<<<<<10";

            Console.WriteLine("TD3 code sample");
            Console.WriteLine();
            Console.WriteLine(text);
            Console.WriteLine();

            var mrzCode = MrzCode.Parse(text);

            Console.WriteLine("Code type:                {0}", mrzCode.Type);

            Console.WriteLine("DocumentType:             {0}", mrzCode[FieldType.DocumentType]);
            Console.WriteLine("CountryCode:              {0}", mrzCode[FieldType.CountryCode]);
            Console.WriteLine("PrimaryIdentifier:        {0}", mrzCode[FieldType.PrimaryIdentifier]);
            Console.WriteLine("DocumentNumber:           {0}", mrzCode[FieldType.DocumentNumber]);
            Console.WriteLine("DocumentNumberCheckDigit: {0}", mrzCode[FieldType.DocumentNumberCheckDigit]);
            Console.WriteLine("Nationality:              {0}", mrzCode[FieldType.Nationality]);
            Console.WriteLine("BirthDate:                {0}", mrzCode[FieldType.BirthDate]);
            Console.WriteLine("BirthDateCheckDigit:      {0}", mrzCode[FieldType.BirthDateCheckDigit]);
            Console.WriteLine("Sex:                      {0}", mrzCode[FieldType.Sex]);
            Console.WriteLine("ExpiryDate:               {0}", mrzCode[FieldType.ExpiryDate]);
            Console.WriteLine("ExpiryDateCheckDigit:     {0}", mrzCode[FieldType.ExpiryDateCheckDigit]);
            Console.WriteLine("OptionalData:             {0}", mrzCode[FieldType.OptionalData]);
            Console.WriteLine("OptionalDataCheckDigit:   {0}", mrzCode[FieldType.OptionalDataCheckDigit]);
            Console.WriteLine("OverallCheckDigit:        {0}", mrzCode[FieldType.OverallCheckDigit]);

            Console.WriteLine();
        }
Exemplo n.º 4
0
        public void ExceptionIfCodeDoesNotMatchPattern()
        {
            const string invalidCode = @"V<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<
L8988901C4XXX4009078R96121096ZE184226B<<<<<<"; // invalid sex value

            Assert.Throws <MrzCodeException>(() => MrzCode.Parse(invalidCode)[FieldType.Sex]);
        }
Exemplo n.º 5
0
        public static void Run()
        {
            var text = @"V<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<
L8988901C4XXX4009078F96121096ZE184226B<<<<<<";

            Console.WriteLine("MRVA code sample");
            Console.WriteLine();
            Console.WriteLine(text);
            Console.WriteLine();

            var mrzCode = MrzCode.Parse(text);

            Console.WriteLine("Code type:                {0}", mrzCode.Type);

            Console.WriteLine("DocumentType:             {0}", mrzCode[FieldType.DocumentType]);
            Console.WriteLine("CountryCode:              {0}", mrzCode[FieldType.CountryCode]);
            Console.WriteLine("PrimaryIdentifier:        {0}", mrzCode[FieldType.PrimaryIdentifier]);
            Console.WriteLine("DocumentNumber:           {0}", mrzCode[FieldType.DocumentNumber]);
            Console.WriteLine("DocumentNumberCheckDigit: {0}", mrzCode[FieldType.DocumentNumberCheckDigit]);
            Console.WriteLine("Nationality:              {0}", mrzCode[FieldType.Nationality]);
            Console.WriteLine("BirthDate:                {0}", mrzCode[FieldType.BirthDate]);
            Console.WriteLine("BirthDateCheckDigit:      {0}", mrzCode[FieldType.BirthDateCheckDigit]);
            Console.WriteLine("Sex:                      {0}", mrzCode[FieldType.Sex]);
            Console.WriteLine("ExpiryDate:               {0}", mrzCode[FieldType.ExpiryDate]);
            Console.WriteLine("ExpiryDateCheckDigit:     {0}", mrzCode[FieldType.ExpiryDateCheckDigit]);
            Console.WriteLine("OptionalData:             {0}", mrzCode[FieldType.OptionalData]);

            Console.WriteLine();
        }
Exemplo n.º 6
0
        public void FieldTypeCollectionTest()
        {
            var target = MrzCode.Parse(MrzSamples.MRVA);

            var expected = new[]
            {
                FieldType.DocumentType,
                FieldType.CountryCode,
                FieldType.PrimaryIdentifier,
                FieldType.DocumentNumber,
                FieldType.DocumentNumberCheckDigit,
                FieldType.Nationality,
                FieldType.BirthDate,
                FieldType.BirthDateCheckDigit,
                FieldType.Sex,
                FieldType.ExpiryDate,
                FieldType.ExpiryDateCheckDigit,
                FieldType.OptionalData
            };

            var actual = target.FieldTypes.ToList();

            Assert.Equal(expected.Length, actual.Count());
            Assert.Equal(expected, actual);
        }
Exemplo n.º 7
0
        public void CodeFieldsTest_BackwardCompatibility()
        {
            var target = MrzCode.Parse(MrzSamples.TD3);

            Assert.Equal(target[FieldType.OptionalData], target[FieldType.OptionalData2]);
            Assert.Equal(target[FieldType.OptionalDataCheckDigit], target[FieldType.OptionalData2CheckDigit]);
        }
Exemplo n.º 8
0
        public void FirstLineFieldsTest()
        {
            var target = MrzCode.Parse(MrzSamples.MRVA).Lines.First();

            Assert.Equal(DocumentType.V.ToString(), target.Fields[FieldType.DocumentType].Value);
            Assert.Equal("UTO", target.Fields[FieldType.CountryCode].Value);
            Assert.Equal("ERIKSSON, ANNA MARIA", target.Fields[FieldType.PrimaryIdentifier].Value);
        }
Exemplo n.º 9
0
        public void FirstLineFieldsTest()
        {
            var target = MrzCode.Parse(MrzSamples.TD1).Lines.First();

            Assert.Equal(DocumentType.I.ToString(), target.Fields[FieldType.DocumentType].Value);
            Assert.Equal("UTO", target.Fields[FieldType.CountryCode].Value);
            Assert.Equal("D23145890", target.Fields[FieldType.DocumentNumber].Value);
            Assert.Equal("7", target.Fields[FieldType.DocumentNumberCheckDigit].Value);
            Assert.Equal("", target.Fields[FieldType.OptionalData1].Value);
        }
Exemplo n.º 10
0
        public void SecondLineFieldsTest()
        {
            var target = MrzCode.Parse(MrzSamples.TD1).Lines.ElementAt(1);

            Assert.Equal("740812", target.Fields[FieldType.BirthDate].Value);
            Assert.Equal("2", target.Fields[FieldType.BirthDateCheckDigit].Value);
            Assert.Equal("F", target.Fields[FieldType.Sex].Value);
            Assert.Equal("120415", target.Fields[FieldType.ExpiryDate].Value);
            Assert.Equal("9", target.Fields[FieldType.ExpiryDateCheckDigit].Value);
            Assert.Equal("UTO", target.Fields[FieldType.Nationality].Value);
            Assert.Equal("", target.Fields[FieldType.OptionalData2].Value);
            Assert.Equal("6", target.Fields[FieldType.OverallCheckDigit].Value);
        }
Exemplo n.º 11
0
        public void SecondLineFieldsTest()
        {
            var target = MrzCode.Parse(MrzSamples.MRVA).Lines.Last();

            Assert.Equal("L8988901C", target.Fields[FieldType.DocumentNumber].Value);
            Assert.Equal("4", target.Fields[FieldType.DocumentNumberCheckDigit].Value);
            Assert.Equal("XXX", target.Fields[FieldType.Nationality].Value);
            Assert.Equal("400907", target.Fields[FieldType.BirthDate].Value);
            Assert.Equal("8", target.Fields[FieldType.BirthDateCheckDigit].Value);
            Assert.Equal("F", target.Fields[FieldType.Sex].Value);
            Assert.Equal("961210", target.Fields[FieldType.ExpiryDate].Value);
            Assert.Equal("9", target.Fields[FieldType.ExpiryDateCheckDigit].Value);
            Assert.Equal("6ZE184226B", target.Fields[FieldType.OptionalData].Value);
        }
Exemplo n.º 12
0
        public void SecondLineFieldsTest()
        {
            var target = MrzCode.Parse(MrzSamples.TD2).Lines.Last();

            Assert.Equal("D23145890", target.Fields[FieldType.DocumentNumber].Value);
            Assert.Equal("7", target.Fields[FieldType.DocumentNumberCheckDigit].Value);
            Assert.Equal("UTO", target.Fields[FieldType.Nationality].Value);
            Assert.Equal("740812", target.Fields[FieldType.BirthDate].Value);
            Assert.Equal("2", target.Fields[FieldType.BirthDateCheckDigit].Value);
            Assert.Equal("F", target.Fields[FieldType.Sex].Value);
            Assert.Equal("120415", target.Fields[FieldType.ExpiryDate].Value);
            Assert.Equal("9", target.Fields[FieldType.ExpiryDateCheckDigit].Value);
            Assert.Equal("", target.Fields[FieldType.OptionalData].Value);
            Assert.Equal("6", target.Fields[FieldType.OverallCheckDigit].Value);
        }
Exemplo n.º 13
0
        public void CodeFieldsTest()
        {
            var target = MrzCode.Parse(MrzSamples.MRVA);

            Assert.Equal(DocumentType.V.ToString(), target[FieldType.DocumentType]);
            Assert.Equal("UTO", target[FieldType.CountryCode]);
            Assert.Equal("ERIKSSON, ANNA MARIA", target[FieldType.PrimaryIdentifier]);
            Assert.Equal("L8988901C", target[FieldType.DocumentNumber]);
            Assert.Equal("4", target[FieldType.DocumentNumberCheckDigit]);
            Assert.Equal("XXX", target[FieldType.Nationality]);
            Assert.Equal("400907", target[FieldType.BirthDate]);
            Assert.Equal("8", target[FieldType.BirthDateCheckDigit]);
            Assert.Equal("F", target[FieldType.Sex]);
            Assert.Equal("961210", target[FieldType.ExpiryDate]);
            Assert.Equal("9", target[FieldType.ExpiryDateCheckDigit]);
            Assert.Equal("6ZE184226B", target[FieldType.OptionalData]);
        }
Exemplo n.º 14
0
        public void CodeFieldsTest()
        {
            var target = MrzCode.Parse(MrzSamples.TD2);

            Assert.Equal(DocumentType.I.ToString(), target[FieldType.DocumentType]);
            Assert.Equal("UTO", target[FieldType.CountryCode]);
            Assert.Equal("ERIKSSON, ANNA MARIA", target[FieldType.PrimaryIdentifier]);
            Assert.Equal("D23145890", target[FieldType.DocumentNumber]);
            Assert.Equal("7", target[FieldType.DocumentNumberCheckDigit]);
            Assert.Equal("UTO", target[FieldType.Nationality]);
            Assert.Equal("740812", target[FieldType.BirthDate]);
            Assert.Equal("2", target[FieldType.BirthDateCheckDigit]);
            Assert.Equal("F", target[FieldType.Sex]);
            Assert.Equal("120415", target[FieldType.ExpiryDate]);
            Assert.Equal("9", target[FieldType.ExpiryDateCheckDigit]);
            Assert.Equal("", target[FieldType.OptionalData]);
            Assert.Equal("6", target[FieldType.OverallCheckDigit]);
        }
Exemplo n.º 15
0
        public void CodeTypeDetection(string input, CodeType expected)
        {
            var target = MrzCode.Parse(input);

            Assert.Equal(expected, target.Type);
        }
Exemplo n.º 16
0
        public void ToStringReturnsInputLines(string input)
        {
            var target = MrzCode.Parse(input);

            Assert.Equal(input, target.ToString());
        }
Exemplo n.º 17
0
        public void AccessToInvalidFieldTypeWithException(string input, FieldType invalidType)
        {
            var target = MrzCode.Parse(input);

            Assert.Throws <MrzCodeException>(() => target[invalidType]);
        }
Exemplo n.º 18
0
        public void ThirdLineFieldsTest()
        {
            var target = MrzCode.Parse(MrzSamples.TD1).Lines.Last();

            Assert.Equal("ERIKSSON, ANNA MARIA", target.Fields[FieldType.Names].Value);
        }
Exemplo n.º 19
0
        public void LinesCount(string input, int expected)
        {
            var target = MrzCode.Parse(input);

            Assert.Equal(expected, target.Lines.Count());
        }