public void GenerateSpriteTests(GenerateSpriteTestCase testCase) { var nativeBuffer = new NativeArray <Color32>(testCase.buffer, Allocator.Temp); var output = TextureGeneratorHelper.GenerateTextureSprite(nativeBuffer, testCase.bufferWidth, testCase.bufferHeight, testCase.settings, testCase.platformSettings, testCase.spriteSettings, testCase.alphaSettings, testCase.mipmapSettings, testCase.wrapSettings); nativeBuffer.Dispose(); //Verify texture is generated Assert.NotNull(output.texture); Assert.AreEqual(testCase.alphaSettings == null || testCase.alphaSettings.alphaSource != TextureImporterAlphaSource.None, output.texture.alphaIsTransparency); int expectedWidth = testCase.platformSettings.overridden ? Mathf.Min(testCase.bufferWidth, testCase.platformSettings.maxTextureSize) : testCase.bufferWidth; int expectedHeight = testCase.platformSettings.overridden ? Mathf.Min(testCase.bufferHeight, testCase.platformSettings.maxTextureSize) : testCase.bufferHeight; Assert.AreEqual(expectedWidth, output.texture.width); Assert.AreEqual(expectedHeight, output.texture.height); //Verify sprites var spriteSheetData = testCase.spriteSettings.spriteSheetData; if (spriteSheetData == null) { Assert.AreEqual(0, output.sprites.Length); } else { Assert.AreEqual(spriteSheetData.Length, output.sprites.Length); for (int i = 0; i < spriteSheetData.Length; ++i) { var spriteID = new GUID(spriteSheetData[i].spriteID); var sprite = output.sprites.FirstOrDefault(x => x.GetSpriteID() == spriteID); Assert.NotNull(sprite); Assert.AreEqual(spriteSheetData[i].name, sprite.name); if (!testCase.platformSettings.overridden) { Assert.AreEqual(spriteSheetData[i].rect, sprite.textureRect); } Assert.AreEqual(output.texture, sprite.texture); } } }
private static IEnumerable <TestCaseData> GenerateSpriteTestCases() { var buffer = new Color32[64 * 64]; var settings = new TextureSettings(); var alphaSettingsFromInput = new TextureAlphaSettings(); alphaSettingsFromInput.alphaSource = TextureImporterAlphaSource.FromInput; var alphaSettingsFromGrayScale = new TextureAlphaSettings(); alphaSettingsFromGrayScale.alphaSource = TextureImporterAlphaSource.FromGrayScale; var alphaSettingsNone = new TextureAlphaSettings(); alphaSettingsNone.alphaSource = TextureImporterAlphaSource.None; var platformSettings = new TextureImporterPlatformSettings(); var platformSettingsOverride = new TextureImporterPlatformSettings(); platformSettingsOverride.overridden = true; platformSettingsOverride.maxTextureSize = 32; var spriteSettings = new TextureSpriteSettings(); var spriteSettingsWithSprites = new TextureSpriteSettings(); spriteSettingsWithSprites.spriteSheetData = new SpriteImportData[] { new SpriteImportData() { name = "Sprite1", rect = new Rect(0, 0, 32, 32), spriteID = GUID.Generate().ToString() }, new SpriteImportData() { name = "Sprite2", rect = new Rect(32, 32, 32, 32), spriteID = GUID.Generate().ToString() }, new SpriteImportData() { name = "Sprite3", rect = new Rect(0, 32, 32, 32), spriteID = GUID.Generate().ToString() }, }; { GenerateSpriteTestCase testCase = new GenerateSpriteTestCase { settings = settings, platformSettings = platformSettings, spriteSettings = spriteSettings, bufferWidth = 64, bufferHeight = 64, buffer = buffer, testName = "GenerateSpriteWithNoSpriteData" }; yield return(new TestCaseData(testCase)); testCase.spriteSettings = spriteSettingsWithSprites; testCase.testName = "GenerateSpriteWithSpriteData"; yield return(new TestCaseData(testCase)); } { GenerateSpriteTestCase testCase = new GenerateSpriteTestCase { settings = settings, platformSettings = platformSettings, spriteSettings = spriteSettings, bufferWidth = 64, bufferHeight = 64, buffer = buffer, testName = "GenerateSpriteWithNoSpriteData_AlphaNone", alphaSettings = alphaSettingsNone }; yield return(new TestCaseData(testCase)); testCase.testName = "GenerateSpriteWithSpriteData_AlphaNone"; testCase.spriteSettings = spriteSettingsWithSprites; yield return(new TestCaseData(testCase)); } { GenerateSpriteTestCase testCase = new GenerateSpriteTestCase { settings = settings, platformSettings = platformSettings, spriteSettings = spriteSettings, bufferWidth = 64, bufferHeight = 64, buffer = buffer, testName = "GenerateSpriteWithNoSpriteData_AlphaGrayScale", alphaSettings = alphaSettingsFromGrayScale }; yield return(new TestCaseData(testCase)); testCase.testName = "GenerateSpriteWithSpriteData_AlphaGrayScale"; testCase.spriteSettings = spriteSettingsWithSprites; yield return(new TestCaseData(testCase)); } { GenerateSpriteTestCase testCase = new GenerateSpriteTestCase { settings = settings, platformSettings = platformSettings, spriteSettings = spriteSettings, bufferWidth = 64, bufferHeight = 64, buffer = buffer, testName = "GenerateSpriteWithNoSpriteData_AlphaFromInput", alphaSettings = alphaSettingsFromInput }; yield return(new TestCaseData(testCase)); testCase.testName = "GenerateSpriteWithSpriteData_AlphaFromInput"; testCase.spriteSettings = spriteSettingsWithSprites; yield return(new TestCaseData(testCase)); } { GenerateSpriteTestCase testCase = new GenerateSpriteTestCase { settings = settings, platformSettings = platformSettingsOverride, spriteSettings = spriteSettings, bufferWidth = 64, bufferHeight = 64, buffer = buffer, testName = "GenerateSpriteWithNoSpriteData_WithPlatformOverride", alphaSettings = alphaSettingsFromInput }; yield return(new TestCaseData(testCase)); testCase.testName = "GenerateSpriteWithSpriteData_WithPlatformOverride"; testCase.spriteSettings = spriteSettingsWithSprites; yield return(new TestCaseData(testCase)); } }