Skip to content

Commit

Permalink
Merge pull request #2415 from Open-Systems-Pharmacology/2405-disappea…
Browse files Browse the repository at this point in the history
…r-with-clone

Fixes #2405 disappear with clone
  • Loading branch information
georgeDaskalakis authored Nov 8, 2022
2 parents 1227a5c + 1f11242 commit 8d01740
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 13 deletions.
3 changes: 2 additions & 1 deletion src/PKSim.Core/Model/Simulation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ public virtual SimulationResults Results
/// (true: simulation was performed with current parameters, false: simulation parameters have changed ...)
/// </summary>
public virtual bool HasUpToDateResults => Version == ResultsVersion;

public abstract bool HasResults { get; }

/// <summary>
Expand Down Expand Up @@ -400,6 +400,7 @@ public override void UpdatePropertiesFrom(IUpdatable sourceObject, ICloneManager
Reactions = cloneManager.Clone(sourceSimulation.Reactions);
SimulationSettings = cloneManager.Clone(sourceSimulation.SimulationSettings);
ReactionDiagramModel = sourceSimulation.ReactionDiagramModel.CreateCopy();
OutputMappings.UpdatePropertiesFrom(sourceSimulation.OutputMappings, cloneManager);
updateBuildingBlockReferences(sourceSimulation);
}

Expand Down
55 changes: 43 additions & 12 deletions tests/PKSim.Tests/IntegrationTests/SimulationSpecs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using OSPSuite.Core.Domain;
using OSPSuite.Core.Domain.Builder;
using OSPSuite.Core.Domain.Formulas;
using OSPSuite.Core.Domain.ParameterIdentifications;
using OSPSuite.Core.Domain.Services;
using OSPSuite.Core.Extensions;
using OSPSuite.Utility.Container;
Expand Down Expand Up @@ -711,6 +712,36 @@ public async Task should_be_able_to_simulate_the_simulation()
}
}


public class When_cloning_a_simulation : concern_for_IndividualSimulation
{
private ICloner _cloner;
private IndividualSimulation _clone;

public override void GlobalContext()
{
base.GlobalContext();
_cloner = IoC.Resolve<ICloner>();
_simulation = DomainFactoryForSpecs.CreateSimulationWith(_individual, _compound, _protocol).DowncastTo<IndividualSimulation>();
_simulation.OutputMappings.Add(new OutputMapping
{
OutputSelection = new SimulationQuantitySelection(_simulation, new QuantitySelection("PATH", QuantityType.Parameter)),
WeightedObservedData = new WeightedObservedData(DomainHelperForSpecs.ObservedData())
});
}

protected override void Because()
{
_clone = _cloner.Clone(_simulation);
}

[Observation]
public void should_also_clone_the_output_mapping()
{
_clone.OutputMappings.All.Count.ShouldBeEqualTo(_simulation.OutputMappings.All.Count);
}
}

[NightlyOnly]
public abstract class When_creating_an_individual_simulation_with_drug_and_inhibitor : concern_for_IndividualSimulation
{
Expand Down Expand Up @@ -843,49 +874,49 @@ protected When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all
protected override IEnumerable<PartialProcess> PartialProcesses => _compoundProcessRepo.All<TransportPartialProcess>();
}

public class When_creating_an_individual_simulation_with_drug_and_competitiv_inhibitor_for_all_metabolic_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_metabolic_processes
public class When_creating_an_individual_simulation_with_drug_and_competitive_inhibitor_for_all_metabolic_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_metabolic_processes
{
public When_creating_an_individual_simulation_with_drug_and_competitiv_inhibitor_for_all_metabolic_processes()
public When_creating_an_individual_simulation_with_drug_and_competitive_inhibitor_for_all_metabolic_processes()
: base(CoreConstantsForSpecs.Process.COMPETITIVE_INHIBITION)
{
}
}

public class When_creating_an_individual_simulation_with_drug_and_competitiv_inhibitor_for_all_active_transport_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_active_transport_processes
public class When_creating_an_individual_simulation_with_drug_and_competitive_inhibitor_for_all_active_transport_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_active_transport_processes
{
public When_creating_an_individual_simulation_with_drug_and_competitiv_inhibitor_for_all_active_transport_processes()
public When_creating_an_individual_simulation_with_drug_and_competitive_inhibitor_for_all_active_transport_processes()
: base(CoreConstantsForSpecs.Process.COMPETITIVE_INHIBITION)
{
}
}

public class When_creating_an_individual_simulation_with_drug_and_uncompetitiv_inhibitor_for_all_metabolic_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_metabolic_processes
public class When_creating_an_individual_simulation_with_drug_and_uncompetitive_inhibitor_for_all_metabolic_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_metabolic_processes
{
public When_creating_an_individual_simulation_with_drug_and_uncompetitiv_inhibitor_for_all_metabolic_processes()
public When_creating_an_individual_simulation_with_drug_and_uncompetitive_inhibitor_for_all_metabolic_processes()
: base(CoreConstantsForSpecs.Process.UNCOMPETITIVE_INHIBITION)
{
}
}

public class When_creating_an_individual_simulation_with_drug_and_uncompetitiv_inhibitor_for_all_active_transport_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_active_transport_processes
public class When_creating_an_individual_simulation_with_drug_and_uncompetitive_inhibitor_for_all_active_transport_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_active_transport_processes
{
public When_creating_an_individual_simulation_with_drug_and_uncompetitiv_inhibitor_for_all_active_transport_processes()
public When_creating_an_individual_simulation_with_drug_and_uncompetitive_inhibitor_for_all_active_transport_processes()
: base(CoreConstantsForSpecs.Process.UNCOMPETITIVE_INHIBITION)
{
}
}

public class When_creating_an_individual_simulation_with_drug_and_noncompetitiv_inhibitor_for_all_metabolic_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_metabolic_processes
public class When_creating_an_individual_simulation_with_drug_and_noncompetitive_inhibitor_for_all_metabolic_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_metabolic_processes
{
public When_creating_an_individual_simulation_with_drug_and_noncompetitiv_inhibitor_for_all_metabolic_processes()
public When_creating_an_individual_simulation_with_drug_and_noncompetitive_inhibitor_for_all_metabolic_processes()
: base(CoreConstantsForSpecs.Process.NONCOMPETITIVE_INHIBITION)
{
}
}

public class When_creating_an_individual_simulation_with_drug_and_noncompetitiv_inhibitor_for_all_active_transport_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_active_transport_processes
public class When_creating_an_individual_simulation_with_drug_and_noncompetitive_inhibitor_for_all_active_transport_processes : When_creating_an_individual_simulation_with_drug_and_inhibitor_for_all_active_transport_processes
{
public When_creating_an_individual_simulation_with_drug_and_noncompetitiv_inhibitor_for_all_active_transport_processes()
public When_creating_an_individual_simulation_with_drug_and_noncompetitive_inhibitor_for_all_active_transport_processes()
: base(CoreConstantsForSpecs.Process.NONCOMPETITIVE_INHIBITION)
{
}
Expand Down

0 comments on commit 8d01740

Please sign in to comment.