Skip to content

Commit

Permalink
GSAGH-499: test to increase coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
SandeepArup committed Jan 31, 2025
1 parent e1b3d85 commit ae6ac0d
Show file tree
Hide file tree
Showing 6 changed files with 62 additions and 22 deletions.
23 changes: 4 additions & 19 deletions GsaGH/Components/4_Analysis/CreateModalDynamicParameter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,30 +130,15 @@ public override void SetSelected(int i, int j) {
}

private static ModeCalculationMethod GetModeStrategy(string name) {
IEnumerable<ModeCalculationMethod> items = _modeCalculationMethod.Where(x => x.Value.Equals(name)).Select(x => x.Key);
if (items.Any()) {
return items.First();
} else {
throw new ArgumentException("Unable to convert " + name + " to mode calculation strategy");
}
return _modeCalculationMethod.Where(x => x.Value.Equals(name)).Select(x => x.Key).First();
}

private static Direction GetDirection(string name) {
IEnumerable<Direction> items = _massDirection.Where(x => x.Value.Equals(name)).Select(x => x.Key);
if (items.Any()) {
return items.First();
} else {
throw new ArgumentException("Unable to convert " + name + " to direction");
}
return _massDirection.Where(x => x.Value.Equals(name)).Select(x => x.Key).First();
}

private static ModalMassOption GetMassOption(string name) {
IEnumerable<ModalMassOption> items = _massOptions.Where(x => x.Value.Equals(name)).Select(x => x.Key);
if (items.Any()) {
return items.First();
} else {
throw new ArgumentException("Unable to convert " + name + " to mass option");
}
return _massOptions.Where(x => x.Value.Equals(name)).Select(x => x.Key).First();
}

private void UpdateParameters(ModeCalculationMethod modeMethod) {
Expand All @@ -171,7 +156,7 @@ private void UpdateParameters(ModeCalculationMethod modeMethod) {
}

private void UnregisterParameters() {
for (int i = Params.Input.Count - 1; i > 0; i--) {
for (int i = Params.Input.Count - 1; i > -1; i--) {
Params.UnregisterInputParameter(Params.Input[i], true);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ protected override GsaModalDynamicGoo PreferredCast(object data) {
switch (data) {
case GsaAnalysisTaskGoo analysisTask:
return new GsaModalDynamicGoo(new GsaModalDynamic(analysisTask.Value.ApiTask));
case GsaModalDynamicGoo dynamicAnalysis:
return new GsaModalDynamicGoo(dynamicAnalysis.Value);
default:
this.AddRuntimeError($"Data conversion failed from {data.GetTypeName()} to ModalDynamicAnalysis parameter");
return new GsaModalDynamicGoo(null);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@

using System.Linq;

using Grasshopper.Kernel;

using GsaGH;
using GsaGH.Parameters;
using GsaGH.Parameters.Enums;

using GsaGHTests.Components.Analysis;
using GsaGHTests.Helpers;

using OasysGH.Components;

using Xunit;

namespace GsaGHTests.GooWrappers {
[Collection("GrasshopperFixture collection")]
public class GsaModalDynamicParameterTests {

[Fact]
public void GsaModalDynamicParameterPreferredCastTest() {
GH_OasysComponent comp = CreateAnalysisTaskTests.CreateAnalysisTaskComponent(ModeCalculationMethod.FrquencyRange);
object output = ComponentTestHelper.GetOutput(comp);
var param = new GsaModalDynamicParameter();
param.AddVolatileData(new Grasshopper.Kernel.Data.GH_Path(0), 0, output);
Assert.NotNull(param.VolatileData.AllData(false).First());
Assert.Contains("FrquencyRange", ComponentTestHelper.GetOutput(param).ToString());
}

[Fact]
public void ToStringTest() {
GH_OasysComponent comp = CreateAnalysisTaskTests.CreateAnalysisTaskComponent(ModeCalculationMethod.FrquencyRange);
object output = ComponentTestHelper.GetOutput(comp);
var param = new GsaModalDynamicParameter();
param.AddVolatileData(new Grasshopper.Kernel.Data.GH_Path(0), 0, output);
Assert.NotNull(param.VolatileData.AllData(false).First());
}

[Fact]
public void GsaModalDynamicParameterPreferredCastErrorTest() {
int i = 0;
var param = new GsaModalDynamicParameter();
param.AddVolatileData(new Grasshopper.Kernel.Data.GH_Path(0), 0, i);
Assert.False(param.VolatileData.AllData(false).First().IsValid);
Assert.Single(param.RuntimeMessages(GH_RuntimeMessageLevel.Error));
}

[Fact]
public void ParameterThenPluginInfoValueShouldBeValid() {
GH_OasysComponent comp = CreateModalDynamicParameterByFrquencyRangeTest.ComponentMother();
var output = (GsaModalDynamicGoo)ComponentTestHelper.GetOutput(comp);
Assert.Equal(PluginInfo.Instance, output.PluginInfo);
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ private void PrepareComponent(ModalMassOption massOption, Direction direction) {
_modeCalculationStrategy = _modalDynamicAnalysis.ModeCalculationStrategy as ModeCalculationStrategyByFrequency;
}

public static GH_OasysComponent ComponentMother(ModalMassOption massOption, Direction direction) {
public static GH_OasysComponent ComponentMother(ModalMassOption massOption= ModalMassOption.LumpMassAtNode, Direction direction= Direction.Y) {
var comp = new CreateModalDynamicParameter();
comp.CreateAttributes();
comp.SetSelected(0, 1);
Expand Down

0 comments on commit ae6ac0d

Please sign in to comment.