Skip to content

Commit a6bec4b

Browse files
authored
Add more test coverage (#800)
1 parent 3b36fd9 commit a6bec4b

File tree

102 files changed

+5404
-1938
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+5404
-1938
lines changed

CodeGen/Generators/UnitsNetGen/UnitTestBaseClassGenerator.cs

Lines changed: 60 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -339,24 +339,41 @@ public void EqualityOperators()
339339
}}
340340
341341
[Fact]
342-
public void EqualsIsImplemented()
342+
public void Equals_SameType_IsImplemented()
343343
{{
344344
var a = {_quantity.Name}.From{_baseUnit.PluralName}(1);
345345
var b = {_quantity.Name}.From{_baseUnit.PluralName}(2);
346346
347347
Assert.True(a.Equals(a));
348348
Assert.False(a.Equals(b));
349-
Assert.False(a.Equals(null));
350349
}}
351350
352351
[Fact]
353-
public void EqualsRelativeToleranceIsImplemented()
352+
public void Equals_QuantityAsObject_IsImplemented()
353+
{{
354+
object a = {_quantity.Name}.From{_baseUnit.PluralName}(1);
355+
object b = {_quantity.Name}.From{_baseUnit.PluralName}(2);
356+
357+
Assert.True(a.Equals(a));
358+
Assert.False(a.Equals(b));
359+
Assert.False(a.Equals((object)null));
360+
}}
361+
362+
[Fact]
363+
public void Equals_RelativeTolerance_IsImplemented()
354364
{{
355365
var v = {_quantity.Name}.From{_baseUnit.PluralName}(1);
356366
Assert.True(v.Equals({_quantity.Name}.From{_baseUnit.PluralName}(1), {_baseUnit.PluralName}Tolerance, ComparisonType.Relative));
357367
Assert.False(v.Equals({_quantity.Name}.Zero, {_baseUnit.PluralName}Tolerance, ComparisonType.Relative));
358368
}}
359369
370+
[Fact]
371+
public void Equals_NegativeRelativeTolerance_ThrowsArgumentOutOfRangeException()
372+
{{
373+
var v = {_quantity.Name}.From{_baseUnit.PluralName}(1);
374+
Assert.Throws<ArgumentOutOfRangeException>(() => v.Equals({_quantity.Name}.From{_baseUnit.PluralName}(1), -1, ComparisonType.Relative));
375+
}}
376+
360377
[Fact]
361378
public void EqualsReturnsFalseOnTypeMismatch()
362379
{{
@@ -514,113 +531,137 @@ public void Convert_ToDateTime_ThrowsInvalidCastException()
514531
public void Convert_ToDecimal_EqualsValueAsSameType()
515532
{{
516533
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
517-
Assert.Equal((decimal)quantity.Value, Convert.ToDecimal(quantity));
534+
Assert.Equal((decimal)quantity.Value, Convert.ToDecimal(quantity));
518535
}}
519536
520537
[Fact]
521538
public void Convert_ToDouble_EqualsValueAsSameType()
522539
{{
523540
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
524-
Assert.Equal((double)quantity.Value, Convert.ToDouble(quantity));
541+
Assert.Equal((double)quantity.Value, Convert.ToDouble(quantity));
525542
}}
526543
527544
[Fact]
528545
public void Convert_ToInt16_EqualsValueAsSameType()
529546
{{
530547
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
531-
Assert.Equal((short)quantity.Value, Convert.ToInt16(quantity));
548+
Assert.Equal((short)quantity.Value, Convert.ToInt16(quantity));
532549
}}
533550
534551
[Fact]
535552
public void Convert_ToInt32_EqualsValueAsSameType()
536553
{{
537554
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
538-
Assert.Equal((int)quantity.Value, Convert.ToInt32(quantity));
555+
Assert.Equal((int)quantity.Value, Convert.ToInt32(quantity));
539556
}}
540557
541558
[Fact]
542559
public void Convert_ToInt64_EqualsValueAsSameType()
543560
{{
544561
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
545-
Assert.Equal((long)quantity.Value, Convert.ToInt64(quantity));
562+
Assert.Equal((long)quantity.Value, Convert.ToInt64(quantity));
546563
}}
547564
548565
[Fact]
549566
public void Convert_ToSByte_EqualsValueAsSameType()
550567
{{
551568
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
552-
Assert.Equal((sbyte)quantity.Value, Convert.ToSByte(quantity));
569+
Assert.Equal((sbyte)quantity.Value, Convert.ToSByte(quantity));
553570
}}
554571
555572
[Fact]
556573
public void Convert_ToSingle_EqualsValueAsSameType()
557574
{{
558575
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
559-
Assert.Equal((float)quantity.Value, Convert.ToSingle(quantity));
576+
Assert.Equal((float)quantity.Value, Convert.ToSingle(quantity));
560577
}}
561578
562579
[Fact]
563580
public void Convert_ToString_EqualsToString()
564581
{{
565582
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
566-
Assert.Equal(quantity.ToString(), Convert.ToString(quantity));
583+
Assert.Equal(quantity.ToString(), Convert.ToString(quantity));
567584
}}
568585
569586
[Fact]
570587
public void Convert_ToUInt16_EqualsValueAsSameType()
571588
{{
572589
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
573-
Assert.Equal((ushort)quantity.Value, Convert.ToUInt16(quantity));
590+
Assert.Equal((ushort)quantity.Value, Convert.ToUInt16(quantity));
574591
}}
575592
576593
[Fact]
577594
public void Convert_ToUInt32_EqualsValueAsSameType()
578595
{{
579596
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
580-
Assert.Equal((uint)quantity.Value, Convert.ToUInt32(quantity));
597+
Assert.Equal((uint)quantity.Value, Convert.ToUInt32(quantity));
581598
}}
582599
583600
[Fact]
584601
public void Convert_ToUInt64_EqualsValueAsSameType()
585602
{{
586603
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
587-
Assert.Equal((ulong)quantity.Value, Convert.ToUInt64(quantity));
604+
Assert.Equal((ulong)quantity.Value, Convert.ToUInt64(quantity));
588605
}}
589606
590607
[Fact]
591608
public void Convert_ChangeType_SelfType_EqualsSelf()
592609
{{
593610
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
594-
Assert.Equal(quantity, Convert.ChangeType(quantity, typeof({_quantity.Name})));
611+
Assert.Equal(quantity, Convert.ChangeType(quantity, typeof({_quantity.Name})));
595612
}}
596613
597614
[Fact]
598615
public void Convert_ChangeType_UnitType_EqualsUnit()
599616
{{
600617
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
601-
Assert.Equal(quantity.Unit, Convert.ChangeType(quantity, typeof({_unitEnumName})));
618+
Assert.Equal(quantity.Unit, Convert.ChangeType(quantity, typeof({_unitEnumName})));
602619
}}
603620
604621
[Fact]
605622
public void Convert_ChangeType_QuantityType_EqualsQuantityType()
606623
{{
607624
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
608-
Assert.Equal(QuantityType.{_quantity.Name}, Convert.ChangeType(quantity, typeof(QuantityType)));
625+
Assert.Equal(QuantityType.{_quantity.Name}, Convert.ChangeType(quantity, typeof(QuantityType)));
609626
}}
610627
611628
[Fact]
612629
public void Convert_ChangeType_BaseDimensions_EqualsBaseDimensions()
613630
{{
614631
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
615-
Assert.Equal({_quantity.Name}.BaseDimensions, Convert.ChangeType(quantity, typeof(BaseDimensions)));
632+
Assert.Equal({_quantity.Name}.BaseDimensions, Convert.ChangeType(quantity, typeof(BaseDimensions)));
616633
}}
617634
618635
[Fact]
619636
public void Convert_ChangeType_InvalidType_ThrowsInvalidCastException()
620637
{{
621638
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
622-
Assert.Throws<InvalidCastException>(() => Convert.ChangeType(quantity, typeof(QuantityFormatter)));
639+
Assert.Throws<InvalidCastException>(() => Convert.ChangeType(quantity, typeof(QuantityFormatter)));
623640
}}
641+
642+
[Fact]
643+
public void GetHashCode_Equals()
644+
{{
645+
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(1.0);
646+
Assert.Equal(new {{{_quantity.Name}.QuantityType, quantity.Value, quantity.Unit}}.GetHashCode(), quantity.GetHashCode());
647+
}}
648+
");
649+
650+
if( _quantity.GenerateArithmetic )
651+
{
652+
Writer.WL( $@"
653+
[Theory]
654+
[InlineData(1.0)]
655+
[InlineData(-1.0)]
656+
public void NegationOperator_ReturnsQuantity_WithNegatedValue(double value)
657+
{{
658+
var quantity = {_quantity.Name}.From{_baseUnit.PluralName}(value);
659+
Assert.Equal({_quantity.Name}.From{_baseUnit.PluralName}(-value), -quantity);
660+
}}
661+
");
662+
}
663+
664+
Writer.WL( $@"
624665
}}
625666
}}" );
626667
return Writer.ToString();

UnitsNet.Tests/GeneratedCode/TestsBase/AccelerationTestsBase.g.cs

Lines changed: 53 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)