Skip to content

Commit 7f98048

Browse files
committed
Changing the Angle.BaseUnit from Degrees to Radians
1 parent 7543402 commit 7f98048

File tree

11 files changed

+287
-398
lines changed

11 files changed

+287
-398
lines changed

Common/UnitDefinitions/Angle.json

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
22
"Name": "Angle",
3-
"BaseUnit": "Degree",
3+
"BaseUnit": "Radian",
44
"XmlDocSummary": "In geometry, an angle is the figure formed by two rays, called the sides of the angle, sharing a common endpoint, called the vertex of the angle.",
55
"Units": [
66
{
77
"SingularName": "Radian",
88
"PluralName": "Radians",
9-
"FromUnitToBaseFunc": "{x} * 180 / Math.PI",
10-
"FromBaseToUnitFunc": "{x} / 180 * Math.PI",
9+
"FromUnitToBaseFunc": "{x}",
10+
"FromBaseToUnitFunc": "{x}",
1111
"Prefixes": [ "Nano", "Micro", "Milli", "Centi", "Deci" ],
1212
"Localization": [
1313
{
@@ -24,8 +24,8 @@
2424
"SingularName": "Degree",
2525
"PluralName": "Degrees",
2626
"Prefixes": [ "Nano", "Micro", "Milli" ],
27-
"FromUnitToBaseFunc": "{x}",
28-
"FromBaseToUnitFunc": "{x}",
27+
"FromUnitToBaseFunc": "{x} * Math.PI / 180",
28+
"FromBaseToUnitFunc": "{x} * 180 / Math.PI",
2929
"Localization": [
3030
{
3131
"Culture": "en-US",
@@ -40,8 +40,8 @@
4040
{
4141
"SingularName": "Arcminute",
4242
"PluralName": "Arcminutes",
43-
"FromUnitToBaseFunc": "{x} / 60",
44-
"FromBaseToUnitFunc": "{x} * 60",
43+
"FromUnitToBaseFunc": "{x} * Math.PI / (60 * 180)",
44+
"FromBaseToUnitFunc": "{x} * 60 * 180 / Math.PI",
4545
"Localization": [
4646
{
4747
"Culture": "en-US",
@@ -52,8 +52,8 @@
5252
{
5353
"SingularName": "Arcsecond",
5454
"PluralName": "Arcseconds",
55-
"FromUnitToBaseFunc": "{x} / 3600",
56-
"FromBaseToUnitFunc": "{x} * 3600",
55+
"FromUnitToBaseFunc": "{x} * Math.PI / (3600 * 180)",
56+
"FromBaseToUnitFunc": "{x} * 3600 * 180 / Math.PI",
5757
"Localization": [
5858
{
5959
"Culture": "en-US",
@@ -64,8 +64,8 @@
6464
{
6565
"SingularName": "Gradian",
6666
"PluralName": "Gradians",
67-
"FromUnitToBaseFunc": "{x} * 0.9",
68-
"FromBaseToUnitFunc": "{x} / 0.9",
67+
"FromUnitToBaseFunc": "{x} * Math.PI / 200",
68+
"FromBaseToUnitFunc": "{x} * 200 / Math.PI",
6969
"Localization": [
7070
{
7171
"Culture": "en-US",
@@ -80,8 +80,8 @@
8080
{
8181
"SingularName": "NatoMil",
8282
"PluralName": "NatoMils",
83-
"FromUnitToBaseFunc": "{x} * 9 / 160",
84-
"FromBaseToUnitFunc": "{x} * 160 / 9",
83+
"FromUnitToBaseFunc": "{x} * Math.PI / 3200",
84+
"FromBaseToUnitFunc": "{x} * 3200 / Math.PI",
8585
"Localization": [
8686
{
8787
"Culture": "en-US",
@@ -92,8 +92,8 @@
9292
{
9393
"SingularName": "Revolution",
9494
"PluralName": "Revolutions",
95-
"FromUnitToBaseFunc": "{x} * 360",
96-
"FromBaseToUnitFunc": "{x} / 360",
95+
"FromUnitToBaseFunc": "{x} * 2 * Math.PI",
96+
"FromBaseToUnitFunc": "{x} / (2 * Math.PI)",
9797
"Localization": [
9898
{
9999
"Culture": "en-US",
@@ -104,18 +104,6 @@
104104
"Abbreviations": [ "r" ]
105105
}
106106
]
107-
},
108-
{
109-
"SingularName": "Tilt",
110-
"PluralName": "Tilt",
111-
"FromUnitToBaseFunc": "Math.Asin({x}) * 180 / Math.PI",
112-
"FromBaseToUnitFunc": "Math.Sin({x} / 180 * Math.PI)",
113-
"Localization": [
114-
{
115-
"Culture": "en-US",
116-
"Abbreviations": [ "sin(θ)" ]
117-
}
118-
]
119107
}
120108
]
121109
}

UnitsNet.NanoFramework/GeneratedCode/Quantities/Angle.g.cs

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

UnitsNet.NanoFramework/GeneratedCode/Units/AngleUnit.g.cs

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToAngleExtensionsTest.g.cs

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

UnitsNet.NumberExtensions/GeneratedCode/NumberToAngleExtensions.g.cs

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

UnitsNet.Tests/CustomCode/AngleTests.cs

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,38 +9,21 @@ namespace UnitsNet.Tests
99
public class AngleTests : AngleTestsBase
1010
{
1111
protected override bool SupportsSIUnitSystem => false;
12-
13-
protected override double DegreesInOneDegree => 1;
14-
15-
protected override double GradiansInOneDegree => 400 / 360.0;
16-
17-
protected override double ArcminutesInOneDegree => 60.0;
18-
19-
protected override double RadiansInOneDegree => Math.PI / 2 / 90;
20-
21-
protected override double MillidegreesInOneDegree => 1E3;
22-
23-
protected override double MicrodegreesInOneDegree => 1E6;
24-
25-
protected override double NanodegreesInOneDegree => 1E9;
26-
27-
protected override double NanoradiansInOneDegree => Math.PI / 2 / 90 * 1E9;
28-
29-
protected override double MicroradiansInOneDegree => Math.PI / 2 / 90 * 1E6;
30-
31-
protected override double MilliradiansInOneDegree => Math.PI / 2 / 90 * 1E3;
32-
33-
protected override double CentiradiansInOneDegree => Math.PI / 2 / 90 * 1E2;
34-
35-
protected override double DeciradiansInOneDegree => Math.PI / 2 / 90 * 1E1;
36-
37-
protected override double ArcsecondsInOneDegree => 3600.0;
38-
39-
protected override double RevolutionsInOneDegree => 2.777777777777777e-3;
40-
41-
protected override double TiltInOneDegree => 0.01745240643728351281941897851632;
42-
43-
protected override double NatoMilsInOneDegree => 17.777777777777777777777777777778;
12+
protected override double RadiansInOneRadian => 1;
13+
protected override double DeciradiansInOneRadian => 1E1;
14+
protected override double CentiradiansInOneRadian => 1E2;
15+
protected override double MilliradiansInOneRadian => 1E3;
16+
protected override double MicroradiansInOneRadian => 1E6;
17+
protected override double NanoradiansInOneRadian => 1E9;
18+
protected override double DegreesInOneRadian => 180 / Math.PI;
19+
protected override double MillidegreesInOneRadian => 1E3 * 180 / Math.PI;
20+
protected override double MicrodegreesInOneRadian => 1E6 * 180 / Math.PI;
21+
protected override double NanodegreesInOneRadian => 1E9 * 180 / Math.PI;
22+
protected override double ArcminutesInOneRadian => 180 * 60 / Math.PI;
23+
protected override double ArcsecondsInOneRadian => 180 * 3600 / Math.PI;
24+
protected override double GradiansInOneRadian => 200 / Math.PI;
25+
protected override double NatoMilsInOneRadian => 6400 / (2 * Math.PI);
26+
protected override double RevolutionsInOneRadian => 1 / (2 * Math.PI);
4427

4528
[Fact]
4629
public void AngleDividedByDurationEqualsRotationalSpeed()

UnitsNet.Tests/GeneratedCode/IQuantityTests.g.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)