using Developpez.Dotnet.Measures; using NUnit.Framework; namespace Developpez.Dotnet.Tests.Measures { [TestFixture] public class CelsiusTests { [Test] public void Test_Equality() { Celsius value1 = 40.5; Celsius value2 = 40.5; Assert.AreEqual(value1, value2); Assert.AreNotSame(value1, value2); Celsius value3 = 45.5; Assert.AreNotEqual(value1, value3); Assert.IsTrue(value1 == value2); Assert.IsTrue(value1 != value3); } [Test] public void Test_Comparison() { Celsius value1 = 40.50; Celsius value2 = 40.55; Assert.IsTrue(value1 < value2); Assert.IsTrue(value2 > value1); Assert.IsFalse(value1 > value2); Assert.IsFalse(value2 < value1); Celsius value3 = 40.50; Celsius value4 = 40.50; Celsius value5 = 40.501; Assert.IsTrue(value3 <= value4); Assert.IsTrue(value3 >= value4); Assert.IsTrue(value4 <= value5); Assert.IsFalse(value4 >= value5); } [Test] public void Test_Operation() { Celsius value1 = 33.33; Celsius value2 = 3.55; Celsius expectedAdd = (33.33 + 3.55); Assert.AreEqual(expectedAdd, value1 + value2); Celsius expectedRem = (33.33 - 3.55); Assert.AreEqual(expectedRem, value1 - value2); Celsius expectedMul = 99.99; Assert.AreEqual(expectedMul, value1 * 3); Celsius expectedDiv = 11.11; Assert.AreEqual(expectedDiv, value1 / 3); } [Test] public void Test_Parsing() { Celsius value1 = -159.987; string text = value1.ToString(); Assert.AreEqual("-159,987 °C", text); Celsius value2; Assert.IsTrue(Celsius.TryParse(text, out value2)); Assert.AreEqual(value1, value2); Assert.IsFalse(Celsius.TryParse("15.15,15 °C", out value2)); Assert.IsFalse(Celsius.TryParse("15,15,15 °C", out value2)); Assert.IsTrue(Celsius.TryParse("1 515,15 °C", out value2)); } } }