public void TestStackSizeString()
 {
     Assert.AreEqual("1", StackSizeConverter.StackSizeString(StackSize.One));
     Assert.AreEqual("50", StackSizeConverter.StackSizeString(StackSize.Small));
     Assert.AreEqual("100", StackSizeConverter.StackSizeString(StackSize.Medium));
     Assert.AreEqual("200", StackSizeConverter.StackSizeString(StackSize.Big));
     Assert.AreEqual("500", StackSizeConverter.StackSizeString(StackSize.Huge));
     Assert.AreEqual("(fluid)", StackSizeConverter.StackSizeString(StackSize.Fluid));
 }
        internal string BuildMarkdown()
        {
            var output = new StringBuilder();

            output.AppendLine("| Material | Old Stack | New Stack |");
            output.AppendLine("| - | - | - |");

            foreach (var change in _analysis.Changes)
            {
                string displayNameBlock = change.New.DisplayName;

                if (change.Old.DisplayName != change.New.DisplayName)
                {
                    displayNameBlock += $" </br>(was '{change.Old.DisplayName}')";
                }

                string imagePath = _iconSize switch
                {
                    MarkdownIconSize.Small_64x64 => _pathConverter.PathForImageResource(change.Old.SmallIcon, PathSeparator.Unix),
                    MarkdownIconSize.Large_256x256 => _pathConverter.PathForImageResource(change.Old.BigIcon, PathSeparator.Unix),
                    _ => ""
                };

                output.AppendLine($"| ![text]({imagePath}) </br>{displayNameBlock} | {StackSizeConverter.StackSizeString(change.Old.StackSize)} | **{StackSizeConverter.StackSizeString(change.New.StackSize)}** |");
            }

            return(output.ToString().Trim());
        }
    }