示例#1
0
        private void TestToIsoTemplate(IEnumerable <MinutiaRecord> minutae, string isoTemplateHex)
        {
            // Get the IsoTemplate
            byte[] template = IsoTemplateHelper.ToIsoTemplate(minutae);
            // Convert the IsoTemplate back to a list of minutia (loss of data in casting)
            IEnumerable <MinutiaRecord> convert_minutae = IsoTemplateHelper.ToMinutae(template);

            // Convert it to Hex for comparison
            string templateHex = BitConverter.ToString(template);

            templateHex = templateHex.Replace("-", String.Empty);

            // Assertions
            CollectionAssert.AreEqual(IsoTemplateHelper.ToByteArray(isoTemplateHex), template);
            Assert.AreEqual(minutae.Count(), convert_minutae.Count());
            for (int i = 0; i < convert_minutae.Count(); i++)
            {
                MinutiaRecord real_minutia      = minutae.ElementAt(i);
                MinutiaRecord converted_minutia = convert_minutae.ElementAt(i);
                Assert.AreEqual((int)real_minutia.Position.X, converted_minutia.Position.X);
                Assert.AreEqual((int)real_minutia.Position.Y, converted_minutia.Position.Y);
                // y(x,a) = ax - floor(ax)
                // max(y(x,a)) = 1, min(y(x,a)) = 0
                // e(x,a) = x - x_hat =  1/a * floor(ax) = 1/a * y(x,a)
                // Thus max(e(x,a)) = 1/a, min(e(x,a)) = 0
                Assert.IsTrue(real_minutia.Angle - converted_minutia.Angle < 1.0 / (256 / 360));
            }
        }
示例#2
0
        private void DoTestFinaliseTemplate()
        {
            using (Fake.CreateScope())
            {
                // PREPARE
                m_Monitor.Reset();
                IEnumerable <MinutiaRecord> minutae = m_ViewModel.Minutae.ToArray();
                // Record the input minutia type before the operation
                MinutiaType inputType = m_ViewModel.InputMinutiaType;

                // EXECUTE:
                byte[] template = m_IViewModel.FinaliseTemplate();

                // ASSERT:
                // First check that the template is correctly converted
                CollectionAssert.AreEqual(
                    IsoTemplateHelper.ToIsoTemplate(minutae),
                    template);
                // Check the workspace is cleared
                Assert.AreEqual(CAPTURE_NO_TEMPLATE, m_ViewModel.Capture);
                Assert.IsTrue(m_IViewModel.IsSaveTemplatePermitted);
                Assert.AreEqual(minutae.Count(), m_ViewModel.Minutae.Count());
                Assert.AreEqual(0, m_Monitor.GetEventResponses <UserActionRequiredEventArgs>("UserActionRequired").Count());
                Assert.AreEqual(0, m_Monitor.GetEventResponses <PropertyChangedEventArgs>("PropertyChanged").Count());
                Assert.AreEqual(inputType, m_ViewModel.InputMinutiaType);
            }
        }
示例#3
0
        public void TestConvertNullToIsoTemplate()
        {
            SimTemplateException m_Exception = null;

            try
            {
                byte[] template = IsoTemplateHelper.ToIsoTemplate(null);
            }
            catch (SimTemplateException ex)
            {
                m_Exception = ex;
            }
            Assert.IsNotNull(m_Exception);
        }
示例#4
0
 public override byte[] GetTemplate()
 {
     // Return template in ISO template format.
     return(IsoTemplateHelper.ToIsoTemplate(Outer.Minutae));
 }