using System.Globalization; using Godosa.Core.Diagnostics; using Xunit; namespace Godosa.Core.Tests.Diagnostics; public class PerfCsvTests { [Fact] public void Header_AppendsCallerColumnsInOrder() { Assert.Equal("t_s,frame_ms,work_ms,sim_ticks,sim_ms,gpu_ms", PerfCsv.Header()); Assert.Equal("t_s,frame_ms,work_ms,sim_ticks,sim_ms,gpu_ms,draw_calls,triangles", PerfCsv.Header("draw_calls", "triangles")); } [Fact] public void Row_AppendsCallerValuesInOrder() { Assert.Equal("1.500,16.000,4.000,2,1.000,,12,2.500,", PerfCsv.Row(1.5, 0.016, 0.004, 2, 0.001, null, "12", PerfCsv.Ms(0.0025), PerfCsv.Ms(null))); } [Fact] public void Ms_IsInvariant_ThreeDecimals() { var previous = Thread.CurrentThread.CurrentCulture; try { Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-DE"); Assert.Equal("12.500", PerfCsv.Ms(0.0125)); } finally { Thread.CurrentThread.CurrentCulture = previous; } } }