public void NiftiFileNamesValid(string fileName, NiftiCompression expected)
        {
            Assert.AreEqual(expected, MedIO.GetNiftiCompressionOrFail(fileName));
            Assert.IsTrue(MedIO.IsNiftiFile(fileName));
            var extension = MedIO.GetNiftiExtension(expected);

            Assert.IsTrue(fileName.EndsWith(extension));
        }
        public void NiftiSaveShort(NiftiCompression niftiCompression)
        {
            var volume = TestHelpers.SingleSlice(Enumerable.Range(0, 9).Select(b => (short)b).ToArray());
            var file   = TestHelpers.CreateTempNiftiName(niftiCompression);

            MedIO.SaveNifti(volume, file);
            var loadedVolume = MedIO.LoadNiftiAsShort(file);

            VolumeAssert.AssertVolumesMatch(volume, loadedVolume);
        }
Beispiel #3
0
        /// <summary>
        /// Gets the extension that a Nifti file should have when using the compression format
        /// given in the argument.
        /// </summary>
        /// <param name="compression"></param>
        /// <returns></returns>
        public static string GetNiftiExtension(NiftiCompression compression)
        {
            switch (compression)
            {
            case NiftiCompression.GZip:
                return(GZipCompressedNiftiSuffix);

            case NiftiCompression.LZ4:
                return(LZ4CompressedNiftiSuffix);

            case NiftiCompression.Uncompressed:
                return(UncompressedNiftiSuffix);

            default:
                throw new ArgumentException($"Unsupported compression {compression}", nameof(compression));
            }
        }
        public void NiftiFileExtension(NiftiCompression compression)
        {
            var extension = MedIO.GetNiftiExtension(compression);

            Assert.AreEqual(compression, MedIO.GetNiftiCompression(extension));
        }
        /// <summary>
        /// Creates a unique file name for a compressed Nifti file in the user's temp folder.
        /// </summary>
        /// <param name="fileNamePrefix">If provided, the file name itself will start with this prefix,
        /// then followed by a random part./param>
        /// <returns></returns>
        public static string CreateTempNiftiName(NiftiCompression niftiCompression, string fileNamePrefix = null)
        {
            var prefix = RandomFileNameInTempFolder(fileNamePrefix);

            return(prefix + MedIO.GetNiftiExtension(niftiCompression));
        }