Beispiel #1
0
        public void TestPixelDeserialization(AdvSourceDataFormat dataFormat, byte dynaBits, CompressionType compression)
        {
            var fileGen = new AdvGenerator();
            var cfg     = new AdvGenerationConfig()
            {
                DynaBits         = dynaBits,
                SourceFormat     = dataFormat,
                NumberOfFrames   = 1,
                Compression      = compression,
                NormalPixelValue = null
            };

            string fileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N"));

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }
            AdvFile2 file = null;

            try
            {
                // Generate
                fileGen.GenerateaAdv_V2(cfg, fileName);

                var    hasher = new Hasher();
                string h1     = hasher.CalcMd5(fileName);
                Console.WriteLine("File hash for {0} at {1} bits: {2}", dataFormat, dynaBits, h1);

                // Verify
                using (file = new AdvFile2(fileName))
                {
                    uint[] pixels = file.GetMainFramePixels(0);

                    var imageGenerator = new ImageGenerator();
                    var verified       = imageGenerator.VerifyImagePattern1UInt32(pixels, cfg.DynaBits);
                    Assert.IsTrue(verified);
                }
            }
            finally
            {
                try
                {
                    if (file != null)
                    {
                        file.Close();
                    }
                    if (File.Exists(fileName))
                    {
                        File.Delete(fileName);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    Trace.WriteLine(ex);
                }
            }
        }
Beispiel #2
0
/* Lagarith16 produces different hashes at different times so the hash level check has been removed
 * Lagarith16 is still tested at pixel level to ensure decompression produces exactly the originally compressed pixels
 *              [TestCase(AdvSourceDataFormat.Format16BitLittleEndianByte, 16, CompressionType.Lagarith16, "2B137AE29578EF9803FD941DDA5BCF90")]
 *              [TestCase(AdvSourceDataFormat.Format16BitUShort, 16, CompressionType.Lagarith16, "2B137AE29578EF9803FD941DDA5BCF90")]
 *              [TestCase(AdvSourceDataFormat.Format16BitUShort, 12, CompressionType.Lagarith16, "1D4D1A051EAC7C3544CD9230A208EC37")]
 *      [TestCase(AdvSourceDataFormat.Format16BitUShort, 8, CompressionType.Lagarith16, "B45D0AFF61E71129CB9B2D5BB63B6FCA")]
 *              [TestCase(AdvSourceDataFormat.Format8BitByte, 8, CompressionType.Lagarith16, "5DBDE91E67E87D64DA46885C028CCC1D")]
 */
        public void TestFileHashesOfZeroTimestampFiles(AdvSourceDataFormat dataFormat, byte dynaBits, CompressionType compression, string expectedHash)
        {
            var fileGen = new AdvGenerator();
            var cfg     = BuildZeroTimestampConfig(dataFormat, dynaBits, compression);

            string fileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N"));

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }

            try
            {
                // Generate
                cfg.SaveCustomStatusSectionTags = true;
                fileGen.GenerateaAdv_V2(cfg, fileName);
                var    hasher = new Hasher();
                string h1     = hasher.CalcMd5(fileName);

                // Verify
                Assert.AreEqual(expectedHash, h1);
            }
            finally
            {
                try
                {
                    if (File.Exists(fileName))
                    {
                        File.Delete(fileName);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    Trace.WriteLine(ex);
                }
            }
        }
Beispiel #3
0
 private AdvGenerationConfig BuildZeroTimestampConfig(AdvSourceDataFormat dataFormat, byte dynaBits, CompressionType compression)
 {
     return(new AdvGenerationConfig()
     {
         DynaBits = dynaBits,
         SourceFormat = dataFormat,
         NumberOfFrames = 1,
         Compression = compression,
         NormalPixelValue = null,
         MainStreamCustomClock = new CustomClockConfig()
         {
             ClockFrequency = 1,
             ClockTicksCallback = () => 0,
             TicksTimingAccuracy = 1
         },
         CalibrationStreamCustomClock = new CustomClockConfig()
         {
             ClockFrequency = 1,
             ClockTicksCallback = () => 0,
             TicksTimingAccuracy = 1
         },
         TimeStampCallback = new GetCurrentImageTimeStampCallback((frameId) => DateTime.MinValue)
     });
 }