Skip to content

Commit 6363448

Browse files
Brunniangularsen
andauthored
AreaDensity: Add g/m2, mg/m2, add operators (#1134)
* Added g/m2 and mg/m2 to AreaDensity. fix #1131 * #1131 Removed wrong operator for AreaDensity * Rename test case * Added and moved unit tests for AreaDensity and Mass operators Co-authored-by: Andreas Gullberg Larsen <[email protected]>
1 parent 2da70c5 commit 6363448

File tree

16 files changed

+340
-9
lines changed

16 files changed

+340
-9
lines changed

Common/UnitDefinitions/AreaDensity.json

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"Name": "AreaDensity",
33
"BaseUnit": "KilogramPerSquareMeter",
4-
"XmlDoc": "The area density of a two-dimensional object is calculated as the mass per unit area.",
4+
"XmlDoc": "The area density of a two-dimensional object is calculated as the mass per unit area. For paper this is also called grammage.",
55
"BaseDimensions": {
66
"L": -2,
77
"M": 1
@@ -22,6 +22,40 @@
2222
"Abbreviations": [ "kg/m²" ]
2323
}
2424
]
25+
},
26+
{
27+
"SingularName": "GramPerSquareMeter",
28+
"PluralName": "GramsPerSquareMeter",
29+
"BaseUnits": {
30+
"L": "Meter",
31+
"M": "Gram"
32+
},
33+
"FromUnitToBaseFunc": "{x} / 1000",
34+
"FromBaseToUnitFunc": "{x} * 1000",
35+
"XmlDocSummary": "Also known as grammage for paper industry. In fiber industry used with abbreviation 'gsm'.",
36+
"XmlDocRemarks": "https://en.wikipedia.org/wiki/Grammage",
37+
"Localization": [
38+
{
39+
"Culture": "en-US",
40+
"Abbreviations": [ "g/m²", "gsm" ]
41+
}
42+
]
43+
},
44+
{
45+
"SingularName": "MilligramPerSquareMeter",
46+
"PluralName": "MilligramsPerSquareMeter",
47+
"BaseUnits": {
48+
"L": "Meter",
49+
"M": "Milligram"
50+
},
51+
"FromUnitToBaseFunc": "{x} / 1000000",
52+
"FromBaseToUnitFunc": "{x} * 1000000",
53+
"Localization": [
54+
{
55+
"Culture": "en-US",
56+
"Abbreviations": [ "mg/m²" ]
57+
}
58+
]
2559
}
2660
]
2761
}

Common/UnitEnumValues.g.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@
9393
"UsSurveySquareFoot": 14
9494
},
9595
"AreaDensity": {
96-
"KilogramPerSquareMeter": 1
96+
"KilogramPerSquareMeter": 1,
97+
"GramPerSquareMeter": 6,
98+
"MilligramPerSquareMeter": 10
9799
},
98100
"AreaMomentOfInertia": {
99101
"CentimeterToTheFourth": 1,

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

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

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

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

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

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

UnitsNet.NumberExtensions/GeneratedCode/NumberToAreaDensityExtensions.g.cs

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

UnitsNet.Tests/CustomCode/AreaDensityTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,25 @@
2222

2323

2424
using System;
25+
using Xunit;
2526

2627
namespace UnitsNet.Tests.CustomCode
2728
{
2829
public class AreaDensityTests : AreaDensityTestsBase
2930
{
3031
protected override bool SupportsSIUnitSystem => true;
3132

33+
protected override double GramsPerSquareMeterInOneKilogramPerSquareMeter => 1000;
34+
3235
protected override double KilogramsPerSquareMeterInOneKilogramPerSquareMeter => 1;
36+
37+
protected override double MilligramsPerSquareMeterInOneKilogramPerSquareMeter => 1000000;
38+
39+
[Fact]
40+
public void AreaDensityTimesAreaEqualsMass()
41+
{
42+
Mass massOfOneA4Paper = AreaDensity.FromGramsPerSquareMeter(120) * Area.FromSquareCentimeters(625);
43+
Assert.Equal(Mass.FromGrams(7.5), massOfOneA4Paper);
44+
}
3345
}
3446
}

UnitsNet.Tests/CustomCode/MassTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,20 @@ public void MassDividedByVolumeEqualsDensity()
9393
Assert.Equal(density, Density.FromKilogramsPerCubicMeter(6));
9494
}
9595

96+
[Fact]
97+
public void MassDividedByAreaEqualsAreaDensity()
98+
{
99+
AreaDensity grammage = Mass.FromKilograms(0.9) / Area.FromSquareMeters(3);
100+
Assert.Equal(AreaDensity.FromKilogramsPerSquareMeter(0.3), grammage);
101+
}
102+
103+
[Fact]
104+
public void MassDividedByAreaDensityEqualsArea()
105+
{
106+
Area area = Mass.FromKilograms(10) / AreaDensity.FromKilogramsPerSquareMeter(5);
107+
Assert.Equal(Area.FromSquareMeters(2), area);
108+
}
109+
96110
[Fact]
97111
public void MassTimesAccelerationEqualsForce()
98112
{

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)