public void SeparateByImageTypeTest() { string[] fileNames = { "InputImages\\new\\NotSupported\\AnimatedGIF.GIF", "InputImages\\new\\NotSupported\\MultiFrameTIF.TIF", "InputImages\\new\\NotSupported\\MisnamedTextFile.png", "InputImages\\new\\NotSupported\\CorruptPNG.png", "InputImages\\new\\Photo\\Grayscale8bppJPG.jpg", "InputImages\\new\\Photo\\MisnamedJPG", "InputImages\\new\\Photo\\MisnamedJPG.GIF", "InputImages\\new\\Photo\\MisnamedJPG.PNG", "InputImages\\new\\Photo\\Photo.JPG", "InputImages\\new\\NonphotoNonindexed\\Nonindexed24bppBMP.BMP", "InputImages\\new\\NonphotoNonindexed\\Nonindexed32bppAlphaPNG.png", "InputImages\\new\\NonphotoNonindexed\\Nonindexed32bppPNG.png", "InputImages\\new\\NonphotoIndexed\\Indexable24bppPNG.png", "InputImages\\new\\NonphotoIndexed\\Indexable32bppPNG.png", "InputImages\\new\\NonphotoIndexed\\Indexable32bppPNG256Pixels.png", "InputImages\\new\\NonphotoIndexed\\Indexed1bppBMP.bmp", "InputImages\\new\\NonphotoIndexed\\Indexed2bppPNG.PNG", "InputImages\\new\\NonphotoIndexed\\Indexed4bppBMP.bmp", "InputImages\\new\\NonphotoIndexed\\Indexed4bppPNG.PNG", "InputImages\\new\\NonphotoIndexed\\Indexed8bppBMP.bmp", "InputImages\\new\\NonphotoIndexed\\Indexed8bppGIF.GIF", "InputImages\\new\\NonphotoIndexed\\MisnamedBMP.JPG", "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.EXE", "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.JPG", "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.JS", "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.PNG", "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.BMP", "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.GIF", "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.JPG", "InputImages\\new\\NonphotoIndexed\\SingleFrame.tif" }; string[] expectedFileNamesNotSupported = { "InputImages\\new\\NotSupported\\AnimatedGIF.GIF", "InputImages\\new\\NotSupported\\MultiFrameTIF.TIF", "InputImages\\new\\NotSupported\\MisnamedTextFile.png", "InputImages\\new\\NotSupported\\CorruptPNG.png" }; string[] expectedFileNamesPhoto = { "InputImages\\new\\Photo\\Grayscale8bppJPG.jpg", "InputImages\\new\\Photo\\MisnamedJPG", "InputImages\\new\\Photo\\MisnamedJPG.GIF", "InputImages\\new\\Photo\\MisnamedJPG.PNG", "InputImages\\new\\Photo\\Photo.JPG" }; string[] expectedFileNamesNonphotoNonindexed = { "InputImages\\new\\NonphotoNonindexed\\Nonindexed24bppBMP.BMP", "InputImages\\new\\NonphotoNonindexed\\Nonindexed32bppAlphaPNG.png", "InputImages\\new\\NonphotoNonindexed\\Nonindexed32bppPNG.png" }; string[] expectedFileNamesNonphotoIndexed = { "InputImages\\new\\NonphotoIndexed\\Indexable24bppPNG.png", "InputImages\\new\\NonphotoIndexed\\Indexable32bppPNG.png", "InputImages\\new\\NonphotoIndexed\\Indexable32bppPNG256Pixels.png", "InputImages\\new\\NonphotoIndexed\\Indexed1bppBMP.bmp", "InputImages\\new\\NonphotoIndexed\\Indexed2bppPNG.PNG", "InputImages\\new\\NonphotoIndexed\\Indexed4bppBMP.bmp", "InputImages\\new\\NonphotoIndexed\\Indexed4bppPNG.PNG", "InputImages\\new\\NonphotoIndexed\\Indexed8bppBMP.bmp", "InputImages\\new\\NonphotoIndexed\\Indexed8bppGIF.GIF", "InputImages\\new\\NonphotoIndexed\\MisnamedBMP.JPG", "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.EXE", "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.JPG", "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.JS", "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.PNG", "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.BMP", "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.GIF", "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.JPG", "InputImages\\new\\NonphotoIndexed\\SingleFrame.tif" }; AppendCurrentDirectory(expectedFileNamesNotSupported); AppendCurrentDirectory(expectedFileNamesPhoto); AppendCurrentDirectory(expectedFileNamesNonphotoNonindexed); AppendCurrentDirectory(expectedFileNamesNonphotoIndexed); var expectedFileNames = new Dictionary <WebGrease.ImageAssemble.ImageType, string[]>(); expectedFileNames.Add(WebGrease.ImageAssemble.ImageType.NotSupported, expectedFileNamesNotSupported); expectedFileNames.Add(WebGrease.ImageAssemble.ImageType.Photo, expectedFileNamesPhoto); expectedFileNames.Add(WebGrease.ImageAssemble.ImageType.NonphotoNonindexed, expectedFileNamesNonphotoNonindexed); expectedFileNames.Add(WebGrease.ImageAssemble.ImageType.NonphotoIndexed, expectedFileNamesNonphotoIndexed); var inputImagesList = new List <InputImage>(); foreach (var fileName in fileNames) { inputImagesList.Add(new InputImage(Path.Combine(Environment.CurrentDirectory, fileName))); } var separatedLists = ImageAssembleGenerator.SeparateByImageType(inputImagesList.AsReadOnly()); foreach (ImageType imageType in System.Enum.GetValues(typeof(WebGrease.ImageAssemble.ImageType))) { var separatedList = separatedLists[imageType]; CompareLists(separatedList, expectedFileNames[imageType]); if (separatedList != null) { foreach (var entry in separatedList) { if (entry.Bitmap != null) { entry.Bitmap.Dispose(); } } } } }