File size: 1,724 Bytes
05c9ac2 |
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
using System;
using System.Collections.Generic;
using System.Globalization;
using NUnit.Framework;
using Unity.MLAgents.Sensors;
using Unity.MLAgents.Utils.Tests;
namespace Unity.MLAgents.Tests
{
[TestFixture]
public class SensorUtilTests
{
internal class TempCulture : IDisposable
{
private CultureInfo m_OriginalCulture;
internal TempCulture(CultureInfo newCulture)
{
m_OriginalCulture = CultureInfo.CurrentCulture;
CultureInfo.CurrentCulture = newCulture;
}
public void Dispose()
{
CultureInfo.CurrentCulture = m_OriginalCulture;
}
}
/// <summary>
/// Test that sensors sort by name consistently across culture settings.
/// Example strings and cultures taken from
/// https://docs.microsoft.com/en-us/globalization/locale/sorting-and-string-comparison
/// </summary>
/// <param name="culture"></param>
[TestCase("da-DK")]
[TestCase("en-US")]
public void TestSortCulture(string culture)
{
List<ISensor> sensors = new List<ISensor>();
var sensor0 = new TestSensor("Apple");
var sensor1 = new TestSensor("Æble");
sensors.Add(sensor0);
sensors.Add(sensor1);
var originalCulture = CultureInfo.CurrentCulture;
CultureInfo.CurrentCulture = new CultureInfo(culture);
SensorUtils.SortSensors(sensors);
CultureInfo.CurrentCulture = originalCulture;
Assert.AreEqual(sensor1, sensors[0]);
Assert.AreEqual(sensor0, sensors[1]);
}
}
}
|