|
1 |
| -using Xunit; |
| 1 | +using System; |
| 2 | +using System.Collections.Generic; |
| 3 | +using Xunit; |
2 | 4 |
|
3 | 5 | namespace UnitsNet.Tests
|
4 | 6 | {
|
5 | 7 | public class BaseDimensionsTests
|
6 | 8 | {
|
7 | 9 | [Fact]
|
8 |
| - public void EqualityWorksAsExpected() |
| 10 | + public void EqualsWorksAsExpected() |
9 | 11 | {
|
10 | 12 | var baseDimensions1 = new BaseDimensions(1, 2, 3, 4, 5, 6, 7);
|
11 | 13 | var baseDimensions2 = new BaseDimensions(1, 2, 3, 4, 5, 6, 7);
|
12 | 14 |
|
13 | 15 | Assert.True(baseDimensions1.Equals(baseDimensions2));
|
14 | 16 | Assert.True(baseDimensions2.Equals(baseDimensions1));
|
| 17 | + |
| 18 | + Assert.False(baseDimensions1.Equals(null)); |
| 19 | + } |
| 20 | + |
| 21 | + [Fact] |
| 22 | + public void EqualityOperatorsWorkAsExpected() |
| 23 | + { |
| 24 | + var baseDimensions1 = new BaseDimensions(1, 2, 3, 4, 5, 6, 7); |
| 25 | + var baseDimensions2 = new BaseDimensions(1, 2, 3, 4, 5, 6, 7); |
| 26 | + |
| 27 | + Assert.True(baseDimensions1 == baseDimensions2); |
| 28 | + Assert.True(baseDimensions2 == baseDimensions1); |
| 29 | + |
| 30 | + Assert.False(baseDimensions1 == null); |
| 31 | + Assert.False(null == baseDimensions1); |
| 32 | + |
| 33 | + Assert.False(baseDimensions2 == null); |
| 34 | + Assert.False(null == baseDimensions2); |
| 35 | + } |
| 36 | + |
| 37 | + [Fact] |
| 38 | + public void InequalityOperatorsWorkAsExpected() |
| 39 | + { |
| 40 | + var baseDimensions1 = new BaseDimensions(1, 2, 3, 4, 5, 6, 7); |
| 41 | + var baseDimensions2 = new BaseDimensions(7, 6, 5, 4, 3, 2, 1); |
| 42 | + |
| 43 | + Assert.True(baseDimensions1 != baseDimensions2); |
| 44 | + Assert.True(baseDimensions2 != baseDimensions1); |
| 45 | + |
| 46 | + Assert.True(baseDimensions1 != null); |
| 47 | + Assert.True(null != baseDimensions1); |
| 48 | + |
| 49 | + Assert.True(baseDimensions2 != null); |
| 50 | + Assert.True(null != baseDimensions2); |
| 51 | + } |
| 52 | + |
| 53 | + [Fact] |
| 54 | + public void MultiplyThrowsExceptionIfPassedNull() |
| 55 | + { |
| 56 | + var baseDimensions1 = new BaseDimensions(1, 0, 0, 0, 0, 0, 0); |
| 57 | + Assert.Throws<ArgumentNullException>(() => baseDimensions1.Multiply(null)); |
| 58 | + } |
| 59 | + |
| 60 | + [Fact] |
| 61 | + public void DivideThrowsExceptionIfPassedNull() |
| 62 | + { |
| 63 | + var baseDimensions1 = new BaseDimensions(1, 0, 0, 0, 0, 0, 0); |
| 64 | + Assert.Throws<ArgumentNullException>(() => baseDimensions1.Divide(null)); |
| 65 | + } |
| 66 | + |
| 67 | + [Fact] |
| 68 | + public void MultiplyOperatorThrowsExceptionWithNull() |
| 69 | + { |
| 70 | + var baseDimensions1 = new BaseDimensions(1, 0, 0, 0, 0, 0, 0); |
| 71 | + Assert.Throws<ArgumentNullException>(() => baseDimensions1 / null); |
| 72 | + Assert.Throws<ArgumentNullException>(() => null / baseDimensions1); |
| 73 | + } |
| 74 | + |
| 75 | + [Fact] |
| 76 | + public void DivideOperatorThrowsExceptionWithNull() |
| 77 | + { |
| 78 | + var baseDimensions1 = new BaseDimensions(1, 0, 0, 0, 0, 0, 0); |
| 79 | + Assert.Throws<ArgumentNullException>(() => baseDimensions1 * null); |
| 80 | + Assert.Throws<ArgumentNullException>(() => null * baseDimensions1); |
15 | 81 | }
|
16 | 82 |
|
17 | 83 | [Fact]
|
@@ -575,5 +641,27 @@ public void CheckToStringUsingMolarEntropy()
|
575 | 641 | {
|
576 | 642 | Assert.Equal("[Length]^2[Mass][Time]^-2[Temperature][Amount]", MolarEntropy.BaseDimensions.ToString());
|
577 | 643 | }
|
| 644 | + |
| 645 | + [Fact] |
| 646 | + public void GetHashCodeWorksProperly() |
| 647 | + { |
| 648 | + var baseDimensions1 = new BaseDimensions(1, 2, 3, 4, 5, 6, 7); |
| 649 | + var baseDimensions2 = new BaseDimensions(7, 6, 5, 4, 3, 2, 1); |
| 650 | + var baseDimensions3 = new BaseDimensions(1, 2, 3, 4, 5, 6, 7); |
| 651 | + |
| 652 | + var hashSet = new HashSet<BaseDimensions>(); |
| 653 | + |
| 654 | + hashSet.Add(baseDimensions1); |
| 655 | + Assert.True(hashSet.Contains(baseDimensions1)); |
| 656 | + |
| 657 | + hashSet.Add(baseDimensions2); |
| 658 | + Assert.True(hashSet.Contains(baseDimensions2)); |
| 659 | + |
| 660 | + // Should be the same as baseDimensions1 |
| 661 | + Assert.True(hashSet.Contains(baseDimensions3)); |
| 662 | + |
| 663 | + Assert.True(baseDimensions1.GetHashCode() != baseDimensions2.GetHashCode()); |
| 664 | + Assert.True(baseDimensions1.GetHashCode() == baseDimensions3.GetHashCode()); |
| 665 | + } |
578 | 666 | }
|
579 | 667 | }
|
0 commit comments