diff --git a/UnitsNet.Tests/CustomCode/AreaTests.cs b/UnitsNet.Tests/CustomCode/AreaTests.cs index d637cd18a9..5edc60edba 100644 --- a/UnitsNet.Tests/CustomCode/AreaTests.cs +++ b/UnitsNet.Tests/CustomCode/AreaTests.cs @@ -51,6 +51,13 @@ public void AreaTimesMassFluxEqualsMassFlow() Assert.Equal(massFlow, MassFlow.FromKilogramsPerSecond(40)); } + [Fact] + public void AreaTimesDensityEqualsLinearDensity() + { + LinearDensity linearDensity = Area.FromSquareCentimeters(2) * Density.FromGramsPerCubicCentimeter(10); + Assert.Equal(LinearDensity.FromGramsPerCentimeter(20), linearDensity); + } + [Theory] [InlineData(0, 0)] [InlineData(0.5, 0.19634954084936208)] diff --git a/UnitsNet.Tests/CustomCode/DensityTests.cs b/UnitsNet.Tests/CustomCode/DensityTests.cs index 6d70e059c2..a2a1cc467d 100644 --- a/UnitsNet.Tests/CustomCode/DensityTests.cs +++ b/UnitsNet.Tests/CustomCode/DensityTests.cs @@ -121,5 +121,12 @@ public void DensityTimesAccelerationEqualsSpecificWeight() SpecificWeight specificWeight = Density.FromKilogramsPerCubicMeter(10) * Acceleration.FromMetersPerSecondSquared(2); Assert.Equal(SpecificWeight.FromNewtonsPerCubicMeter(20), specificWeight); } + + [Fact] + public void DensityTimesAreaEqualsLinearDensity() + { + LinearDensity linearDensity = Density.FromGramsPerCubicCentimeter(10) * Area.FromSquareCentimeters(2); + Assert.Equal(LinearDensity.FromGramsPerCentimeter(20), linearDensity); + } } } diff --git a/UnitsNet.Tests/CustomCode/LinearDensityTests.cs b/UnitsNet.Tests/CustomCode/LinearDensityTests.cs index 65bfdcec5c..2acc6e4f96 100644 --- a/UnitsNet.Tests/CustomCode/LinearDensityTests.cs +++ b/UnitsNet.Tests/CustomCode/LinearDensityTests.cs @@ -22,6 +22,7 @@ using System; +using Xunit; namespace UnitsNet.Tests.CustomCode { @@ -47,6 +48,19 @@ public class LinearDensityTests : LinearDensityTestsBase protected override double PoundsPerInchInOneKilogramPerMeter => 5.599741459E-02; protected override double PoundsPerFootInOneKilogramPerMeter => 6.71968975e-1; - + + [Fact] + public void LinearDensityDividedByAreaEqualsDensity() + { + Density density = LinearDensity.FromGramsPerCentimeter(10) / Area.FromSquareCentimeters(2); + Assert.Equal(Density.FromGramsPerCubicCentimeter(5), density); + } + + [Fact] + public void LinearDensityDividedByDensityEqualsArea() + { + Area area = LinearDensity.FromGramsPerCentimeter(10) / Density.FromGramsPerCubicCentimeter(2); + Assert.Equal(Area.FromSquareCentimeters(5), area); + } } } diff --git a/UnitsNet/CustomCode/Quantities/Area.extra.cs b/UnitsNet/CustomCode/Quantities/Area.extra.cs index a4c005015c..5a89d29521 100644 --- a/UnitsNet/CustomCode/Quantities/Area.extra.cs +++ b/UnitsNet/CustomCode/Quantities/Area.extra.cs @@ -41,5 +41,11 @@ public static Area FromCircleRadius(Length radius) { return VolumeFlow.FromCubicMetersPerSecond(area.SquareMeters * speed.MetersPerSecond); } + + /// Get from times . + public static LinearDensity operator *(Area area, Density density) + { + return LinearDensity.FromKilogramsPerMeter(area.SquareMeters * density.KilogramsPerCubicMeter); + } } } diff --git a/UnitsNet/CustomCode/Quantities/Density.extra.cs b/UnitsNet/CustomCode/Quantities/Density.extra.cs index e569cefac5..d20459ed7b 100644 --- a/UnitsNet/CustomCode/Quantities/Density.extra.cs +++ b/UnitsNet/CustomCode/Quantities/Density.extra.cs @@ -70,5 +70,11 @@ public static Density FromMolarity(Molarity molarity, Mass molecularWeight) { return new Molarity(density.KilogramsPerCubicMeter / molecularWeight.Kilograms, MolarityUnit.MolesPerCubicMeter); } + + /// Get from times . + public static LinearDensity operator *(Density density, Area area) + { + return LinearDensity.FromKilogramsPerMeter(density.KilogramsPerCubicMeter * area.SquareMeters); + } } } diff --git a/UnitsNet/CustomCode/Quantities/LinearDensity.extra.cs b/UnitsNet/CustomCode/Quantities/LinearDensity.extra.cs new file mode 100644 index 0000000000..06cc602b45 --- /dev/null +++ b/UnitsNet/CustomCode/Quantities/LinearDensity.extra.cs @@ -0,0 +1,21 @@ +// Licensed under MIT No Attribution, see LICENSE file at the root. +// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. + +namespace UnitsNet +{ + public partial struct LinearDensity + { + + /// Get from times . + public static Density operator /(LinearDensity linearDensity, Area area) + { + return Density.FromKilogramsPerCubicMeter(linearDensity.KilogramsPerMeter / area.SquareMeters); + } + + /// Get from times . + public static Area operator /(LinearDensity linearDensity, Density density) + { + return Area.FromSquareMeters(linearDensity.KilogramsPerMeter / density.KilogramsPerCubicMeter); + } + } +}