aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/src/Godosa.Core.Tests/Diagnostics/PerfCsvTests.cs
blob: fd64778bf37837968ca70f606c5881fca6d3ce28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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;
        }
    }
}