public static EosImageQuality Create(long bitMask)
 {
     var quality = new EosImageQuality { 
         PrimaryImageSize = (EosImageSize)((bitMask >> 24) & 0xFF),
         PrimaryImageFormat = (EosImageFormat)((bitMask >> 20) & 0xF),
         PrimaryCompressLevel = (EosCompressLevel)((bitMask >> 16) & 0xF),
         SecondaryImageSize = (EosImageSize)((bitMask >> 8) & 0xF),
         SecondaryImageFormat = (EosImageFormat)((bitMask >> 4) & 0xF),
         SecondaryCompressLevel = (EosCompressLevel)(bitMask & 0xF),
     };
     return quality;
 }
        public static EosImageQuality Create(long bitMask)
        {
            var quality = new EosImageQuality {
                PrimaryImageSize       = (EosImageSize)((bitMask >> 24) & 0xFF),
                PrimaryImageFormat     = (EosImageFormat)((bitMask >> 20) & 0xF),
                PrimaryCompressLevel   = (EosCompressLevel)((bitMask >> 16) & 0xF),
                SecondaryImageSize     = (EosImageSize)((bitMask >> 8) & 0xF),
                SecondaryImageFormat   = (EosImageFormat)((bitMask >> 4) & 0xF),
                SecondaryCompressLevel = (EosCompressLevel)(bitMask & 0xF),
            };

            return(quality);
        }
        private static void AssertConversion(long expectedValue, EosImageQuality expectedQuality)
        {
            var actualQuality = EosImageQuality.Create(expectedValue);

            Assert.AreEqual(expectedQuality.PrimaryCompressLevel, actualQuality.PrimaryCompressLevel, "PrimaryCompressLevel");
            Assert.AreEqual(expectedQuality.PrimaryImageFormat, actualQuality.PrimaryImageFormat, "PrimaryImageFormat");
            Assert.AreEqual(expectedQuality.PrimaryImageSize, actualQuality.PrimaryImageSize, "PrimaryImageSize");
            Assert.AreEqual(expectedQuality.SecondaryCompressLevel, actualQuality.SecondaryCompressLevel, "SecondaryCompressLevel");
            Assert.AreEqual(expectedQuality.SecondaryImageFormat, actualQuality.SecondaryImageFormat, "SecondaryImageFormat");
            Assert.AreEqual(expectedQuality.SecondaryImageSize, actualQuality.SecondaryImageSize, "SecondaryImageSize");

            var actualValue = actualQuality.ToBitMask();

            Assert.AreEqual(expectedValue, actualValue, "ToBitMask");
        }