Skip to content

Commit 6d9888c

Browse files
gojanpaoloangularsen
authored andcommitted
Add Area FromCircle methods (#378)
Diameter and radius methods
1 parent 2acee85 commit 6d9888c

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

UnitsNet.Tests/CustomCode/AreaTests.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,33 @@ public void AreaTimesMassFluxEqualsMassFlow()
6363
MassFlow massFlow = Area.FromSquareMeters(20) * MassFlux.FromKilogramsPerSecondPerSquareMeter(2);
6464
Assert.Equal(massFlow, MassFlow.FromKilogramsPerSecond(40));
6565
}
66+
67+
[Theory]
68+
[InlineData(0, 0)]
69+
[InlineData(0.5, 0.19634954084936208)]
70+
[InlineData(1, 0.7853981633974483)]
71+
[InlineData(2, 3.141592653589793)]
72+
public void AreaFromCicleDiameterCalculatedCorrectly(double diameterMeters, double expected)
73+
{
74+
Length diameter = Length.FromMeters(diameterMeters);
75+
76+
double actual = Area.FromCircleDiameter(diameter).SquareMeters;
77+
78+
Assert.Equal(expected, actual);
79+
}
80+
81+
[Theory]
82+
[InlineData(0, 0)]
83+
[InlineData(0.5, 0.7853981633974483)]
84+
[InlineData(1, 3.141592653589793)]
85+
[InlineData(2, 12.566370614359173)]
86+
public void AreaFromCicleRadiusCalculatedCorrectly(double radiusMeters, double expected)
87+
{
88+
Length radius = Length.FromMeters(radiusMeters);
89+
90+
double actual = Area.FromCircleRadius(radius).SquareMeters;
91+
92+
Assert.Equal(expected, actual);
93+
}
6694
}
6795
}

UnitsNet/CustomCode/Quantities/Area.extra.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ public partial struct Area
4141
{
4242
return MassFlow.FromGramsPerSecond(area.SquareMeters * massFlux.GramsPerSecondPerSquareMeter);
4343
}
44+
45+
public static Area FromCircleDiameter(Length diameter)
46+
{
47+
return System.Math.PI * diameter * diameter / 4;
48+
}
49+
50+
public static Area FromCircleRadius(Length radius)
51+
{
52+
return System.Math.PI * radius * radius;
53+
}
4454
#endif
4555
}
4656
}

0 commit comments

Comments
 (0)