using StabilityMatrix.Core.Models; namespace StabilityMatrix.Tests.Models; [TestClass] public class GenerationParametersTests { [TestMethod] public void TestParse() { const string data = """ test123 Negative prompt: test, easy negative Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3589107295, Size: 1024x1028, Model hash: 9aa0c3e54d, Model: nightvisionXL_v0770_BakedVAE, VAE hash: 235745af8d, VAE: sdxl_vae.safetensors, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Version: 1.6.0 """; Assert.IsTrue(GenerationParameters.TryParse(data, out var result)); Assert.AreEqual("test123", result.PositivePrompt); Assert.AreEqual("test, easy negative", result.NegativePrompt); Assert.AreEqual(20, result.Steps); Assert.AreEqual("Euler a", result.Sampler); Assert.AreEqual(7, result.CfgScale); Assert.AreEqual(3589107295, result.Seed); Assert.AreEqual(1024, result.Width); Assert.AreEqual(1028, result.Height); Assert.AreEqual("9aa0c3e54d", result.ModelHash); Assert.AreEqual("nightvisionXL_v0770_BakedVAE", result.ModelName); } [TestMethod] public void TestParse_NoNegative() { const string data = """ test123 Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3589107295, Size: 1024x1028, Model hash: 9aa0c3e54d, Model: nightvisionXL_v0770_BakedVAE, VAE hash: 235745af8d, VAE: sdxl_vae.safetensors, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Version: 1.6.0 """; Assert.IsTrue(GenerationParameters.TryParse(data, out var result)); Assert.AreEqual("test123", result.PositivePrompt); Assert.IsNull(result.NegativePrompt); Assert.AreEqual(20, result.Steps); Assert.AreEqual("Euler a", result.Sampler); Assert.AreEqual(7, result.CfgScale); Assert.AreEqual(3589107295, result.Seed); Assert.AreEqual(1024, result.Width); Assert.AreEqual(1028, result.Height); Assert.AreEqual("9aa0c3e54d", result.ModelHash); Assert.AreEqual("nightvisionXL_v0770_BakedVAE", result.ModelName); } [TestMethod] public void TestParseLineFields() { const string lastLine = @"Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 2216407431, Size: 640x896, Model hash: eb2h052f91, Model: anime_v1"; var fields = GenerationParameters.ParseLine(lastLine); Assert.AreEqual(7, fields.Count); Assert.AreEqual("30", fields["Steps"]); Assert.AreEqual("DPM++ 2M Karras", fields["Sampler"]); Assert.AreEqual("7", fields["CFG scale"]); Assert.AreEqual("2216407431", fields["Seed"]); Assert.AreEqual("640x896", fields["Size"]); Assert.AreEqual("eb2h052f91", fields["Model hash"]); Assert.AreEqual("anime_v1", fields["Model"]); } }