diff --git a/X10D.Tests/src/Math/ByteTests.cs b/X10D.Tests/src/Math/ByteTests.cs index 6608222..ac1b99e 100644 --- a/X10D.Tests/src/Math/ByteTests.cs +++ b/X10D.Tests/src/Math/ByteTests.cs @@ -51,13 +51,29 @@ internal partial class ByteTests } [Test] - public void DigitalRootShouldBeCorrect() + public void DigitalRoot_ShouldReturn4_Given238() { const byte value = 238; Assert.That(value.DigitalRoot(), Is.EqualTo(4)); Assert.That((-value).DigitalRoot(), Is.EqualTo(4)); } + [Test] + public void DigitalRoot_ShouldReturn9_Given9() + { + const byte value = 9; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given18() + { + const byte value = 18; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + [Test] public void FactorialShouldBeCorrect() { diff --git a/X10D.Tests/src/Math/Int16Tests.cs b/X10D.Tests/src/Math/Int16Tests.cs index 7ba50a2..ac68889 100644 --- a/X10D.Tests/src/Math/Int16Tests.cs +++ b/X10D.Tests/src/Math/Int16Tests.cs @@ -62,13 +62,29 @@ internal partial class Int16Tests } [Test] - public void DigitalRootShouldBeCorrect() + public void DigitalRoot_ShouldReturn4_Given238() { const short value = 238; Assert.That(value.DigitalRoot(), Is.EqualTo(4)); Assert.That((-value).DigitalRoot(), Is.EqualTo(4)); } + [Test] + public void DigitalRoot_ShouldReturn9_Given9() + { + const short value = 9; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given18() + { + const short value = 18; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + [Test] public void FactorialShouldBeCorrect() { diff --git a/X10D.Tests/src/Math/Int32Tests.cs b/X10D.Tests/src/Math/Int32Tests.cs index 664e16f..68e05cd 100644 --- a/X10D.Tests/src/Math/Int32Tests.cs +++ b/X10D.Tests/src/Math/Int32Tests.cs @@ -62,13 +62,29 @@ internal partial class Int32Tests } [Test] - public void DigitalRootShouldBeCorrect() + public void DigitalRoot_ShouldReturn4_Given238() { const int value = 238; Assert.That(value.DigitalRoot(), Is.EqualTo(4)); Assert.That((-value).DigitalRoot(), Is.EqualTo(4)); } + [Test] + public void DigitalRoot_ShouldReturn9_Given9() + { + const int value = 9; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given18() + { + const int value = 18; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + [Test] public void FactorialShouldBeCorrect() { diff --git a/X10D.Tests/src/Math/Int64Tests.cs b/X10D.Tests/src/Math/Int64Tests.cs index 8dd40a9..e1f37fd 100644 --- a/X10D.Tests/src/Math/Int64Tests.cs +++ b/X10D.Tests/src/Math/Int64Tests.cs @@ -62,13 +62,29 @@ internal partial class Int64Tests } [Test] - public void DigitalRootShouldBeCorrect() + public void DigitalRoot_ShouldReturn4_Given238() { const long value = 238; Assert.That(value.DigitalRoot(), Is.EqualTo(4)); Assert.That((-value).DigitalRoot(), Is.EqualTo(4)); } + [Test] + public void DigitalRoot_ShouldReturn9_Given9() + { + const long value = 9; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given18() + { + const long value = 18; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + [Test] public void FactorialShouldBeCorrect() { diff --git a/X10D.Tests/src/Math/SByteTests.cs b/X10D.Tests/src/Math/SByteTests.cs index 3727af4..fd9a4fa 100644 --- a/X10D.Tests/src/Math/SByteTests.cs +++ b/X10D.Tests/src/Math/SByteTests.cs @@ -62,13 +62,29 @@ internal partial class SByteTests } [Test] - public void DigitalRootShouldBeCorrect() + public void DigitalRoot_ShouldReturn4_Given127() { const sbyte value = 127; // sbyte.MaxValue. can't use 238 like the other tests Assert.That(value.DigitalRoot(), Is.EqualTo(1)); Assert.That((-value).DigitalRoot(), Is.EqualTo(1)); } + [Test] + public void DigitalRoot_ShouldReturn9_Given9() + { + const sbyte value = 9; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given18() + { + const sbyte value = 18; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + [Test] public void FactorialShouldBeCorrect() { diff --git a/X10D.Tests/src/Math/UInt16Tests.cs b/X10D.Tests/src/Math/UInt16Tests.cs index d51f983..3a7bb0d 100644 --- a/X10D.Tests/src/Math/UInt16Tests.cs +++ b/X10D.Tests/src/Math/UInt16Tests.cs @@ -51,13 +51,29 @@ internal partial class UInt16Tests } [Test] - public void DigitalRootShouldBeCorrect() + public void DigitalRoot_ShouldReturn4_Given238() { const ushort value = 238; Assert.That(value.DigitalRoot(), Is.EqualTo(4)); Assert.That((-value).DigitalRoot(), Is.EqualTo(4)); } + [Test] + public void DigitalRoot_ShouldReturn9_Given9() + { + const ushort value = 9; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given18() + { + const ushort value = 18; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + [Test] public void FactorialShouldBeCorrect() { diff --git a/X10D.Tests/src/Math/UInt32Tests.cs b/X10D.Tests/src/Math/UInt32Tests.cs index f2db8e8..e5c9e91 100644 --- a/X10D.Tests/src/Math/UInt32Tests.cs +++ b/X10D.Tests/src/Math/UInt32Tests.cs @@ -50,11 +50,27 @@ internal partial class UInt32Tests } [Test] - public void DigitalRootShouldBeCorrect() + public void DigitalRoot_ShouldReturn4_Given238() { const uint value = 238; - Assert.That(value.DigitalRoot(), Is.EqualTo(4U)); - Assert.That((-value).DigitalRoot(), Is.EqualTo(4U)); + Assert.That(value.DigitalRoot(), Is.EqualTo(4)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(4)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given9() + { + const uint value = 9; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given18() + { + const uint value = 18; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-value).DigitalRoot(), Is.EqualTo(9)); } [Test] diff --git a/X10D.Tests/src/Math/UInt64Tests.cs b/X10D.Tests/src/Math/UInt64Tests.cs index 7391cc5..8c7a215 100644 --- a/X10D.Tests/src/Math/UInt64Tests.cs +++ b/X10D.Tests/src/Math/UInt64Tests.cs @@ -51,15 +51,31 @@ internal partial class UInt64Tests } [Test] - public void DigitalRootShouldBeCorrect() + public void DigitalRoot_ShouldReturn4_Given238() { const ulong value = 238; - Assert.That(value.DigitalRoot(), Is.EqualTo(4U)); + Assert.That(value.DigitalRoot(), Is.EqualTo(4)); // -ulong operator not defined because it might exceed long.MinValue, // so instead, cast to long and then negate. // HAX. - Assert.That((-(long)value).DigitalRoot(), Is.EqualTo(4U)); + Assert.That((-(long)value).DigitalRoot(), Is.EqualTo(4)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given9() + { + const ulong value = 9; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-(long)value).DigitalRoot(), Is.EqualTo(9)); + } + + [Test] + public void DigitalRoot_ShouldReturn9_Given18() + { + const ulong value = 18; + Assert.That(value.DigitalRoot(), Is.EqualTo(9)); + Assert.That((-(long)value).DigitalRoot(), Is.EqualTo(9)); } [Test]