public override void GlobalContext() { base.GlobalContext(); _simulation = DomainFactoryForSpecs.CreateDefaultSimulation(); _moleculeBuildingBlock = new MoleculeBuildingBlock(); var compoundProperties = _simulation.CompoundPropertiesList.First(); _compoundName = compoundProperties.Compound.Name; _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = _compoundName, QuantityType = QuantityType.Drug }); _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = "Enzyme", QuantityType = QuantityType.Enzyme }); _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = "Metabolite", QuantityType = QuantityType.Metabolite }); _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = "Protein", QuantityType = QuantityType.OtherProtein }); var specificBindingSelection = new ProcessSelection { CompoundName = _compoundName, MoleculeName = "Protein", ProcessName = "Specific Binding" }; var metabolizationSelection = new EnzymaticProcessSelection { CompoundName = _compoundName, MoleculeName = "Protein", ProcessName = "Metabolism" }; _complexProductName = specificBindingSelection.ProductName(CoreConstants.Molecule.Complex); _metaboliteProductName = specificBindingSelection.ProductName(CoreConstants.Molecule.Metabolite); _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = _complexProductName, QuantityType = QuantityType.Complex }); compoundProperties.Processes.SpecificBindingSelection.AddPartialProcessSelection(specificBindingSelection); compoundProperties.Processes.MetabolizationSelection.AddPartialProcessSelection(metabolizationSelection); }
public override Task <IProcessMapping> MapToModel(CompoundProcessSelection snapshot, Model.CompoundProcess process) { IProcessMapping processMapping; switch (process) { case SystemicProcess systemicProcess: processMapping = new SystemicProcessSelection { ProcessType = systemicProcess.SystemicProcessType, }; break; case EnzymaticProcess _: processMapping = new EnzymaticProcessSelection { MetaboliteName = snapshot.MetaboliteName, }; break; case InteractionProcess _: processMapping = new InteractionSelection(); break; default: processMapping = new ProcessSelection(); break; } processMapping.ProcessName = snapshot.Name; processMapping.CompoundName = process.ParentCompound.Name; processMapping.MoleculeName = snapshot.MoleculeName; return(Task.FromResult(processMapping)); }
protected override async Task Context() { await base.Context(); _noProcessSelection = new EnzymaticProcessSelection { MoleculeName = "CYP", }; }
protected override Task Context() { sut = new ProcessMappingMapper(); _compound = new Compound { Name = "COMP", }; _enzymaticProcess = new EnzymaticProcess().WithName("MetaProcess"); _enzymaticProcessSelection = new EnzymaticProcessSelection { CompoundName = _compound.Name, MetaboliteName = "META", MoleculeName = "CYP", ProcessName = _enzymaticProcess.Name }; _specificBindingProcess = new SpecificBindingPartialProcess().WithName("BindingProcess"); _specificBindingPartialProcessSelection = new ProcessSelection { CompoundName = _compound.Name, MoleculeName = "BINDER", ProcessName = _specificBindingProcess.Name }; _transportSystemicProcess = new SystemicProcess { Name = "SystemicTransport", SystemicProcessType = SystemicProcessTypes.GFR }; _transportSystemicProcessSelection = new SystemicProcessSelection { CompoundName = _compound.Name, ProcessName = _transportSystemicProcess.Name, ProcessType = _transportSystemicProcess.SystemicProcessType }; _interactionProcess = new InductionProcess().WithName("InteractionProcess"); _interactionSelection = new InteractionSelection { CompoundName = _compound.Name, ProcessName = _interactionProcess.Name, MoleculeName = "INHIBITOR" }; _compound.AddProcess(_enzymaticProcess); _compound.AddProcess(_transportSystemicProcess); _compound.AddProcess(_interactionProcess); _compound.AddProcess(_specificBindingProcess); return(_completed); }
protected override void Context() { base.Context(); _compound = new Compound().WithName("Comp"); _metabolite = new Compound().WithName("Metabolite"); _simulation = new IndividualSimulation(); _simulation.Properties = new SimulationProperties(); _simulation.Properties.AddCompoundProperties(new CompoundProperties { Compound = _compound }); _simulation.Properties.AddCompoundProperties(new CompoundProperties { Compound = _metabolite }); var enzymaticProcessSelection = new EnzymaticProcessSelection { CompoundName = _compound.Name, MetaboliteName = _metabolite.Name }; _simulation.CompoundPropertiesFor(_compound).Processes.MetabolizationSelection.AddPartialProcessSelection(enzymaticProcessSelection); }
public override Task <IProcessMapping> MapToModel(CompoundProcessSelection snapshot, CompoundProcessSnapshotContext snapshotContext) { IProcessMapping processMapping; var process = snapshotContext.Process; switch (process) { case SystemicProcess systemicProcess: processMapping = new SystemicProcessSelection { ProcessType = systemicProcess.SystemicProcessType, }; break; case EnzymaticProcess _: processMapping = new EnzymaticProcessSelection { MetaboliteName = snapshot.MetaboliteName, }; break; case InteractionProcess _: processMapping = new InteractionSelection(); break; default: processMapping = new ProcessSelection(); break; } processMapping.ProcessName = ModelValueFor(snapshot.Name); //Parent compound may be null for process that are representing a non existent selection processMapping.CompoundName = ModelValueFor(process.ParentCompound?.Name); processMapping.MoleculeName = ModelValueFor(snapshot.MoleculeName); return(Task.FromResult(processMapping)); }
protected override Task Context() { _calculationMethodCacheMapper = A.Fake <CalculationMethodCacheMapper>(); _processMappingMapper = A.Fake <ProcessMappingMapper>(); _logger = A.Fake <ILogger>(); _project = new PKSimProject(); _calculationMethodSnapshot = new CalculationMethodCache(); sut = new CompoundPropertiesMapper(_calculationMethodCacheMapper, _processMappingMapper, _logger); _compoundGroupSelectionOneAlternative = new CompoundGroupSelection { AlternativeName = "ALT1", GroupName = "ALTERNATIVE_GROUP_1" }; _compoundGroupSelectionTwoAlternatives = new CompoundGroupSelection { AlternativeName = "ALT2", GroupName = "ALTERNATIVE_GROUP_2" }; _compound = new Compound { Name = "COMP", }; _protocol = new SimpleProtocol { Name = "PROTOCOL" }; _parameterAlternativeGroupWithOneAlternative = new ParameterAlternativeGroup { Name = _compoundGroupSelectionOneAlternative.GroupName }; _parameterAlternativeGroupWithTwoAlternatives = new ParameterAlternativeGroup { Name = _compoundGroupSelectionTwoAlternatives.GroupName }; _parameterAlternativeGroupWithTwoAlternatives.AddAlternative(new ParameterAlternative { Name = "ALT1" }); _parameterAlternativeGroupWithTwoAlternatives.AddAlternative(new ParameterAlternative { Name = "ALT2" }); _compound.AddParameterAlternativeGroup(_parameterAlternativeGroupWithOneAlternative); _compound.AddParameterAlternativeGroup(_parameterAlternativeGroupWithTwoAlternatives); _compoundProperties = new Model.CompoundProperties(); _compoundProperties.AddCompoundGroupSelection(_compoundGroupSelectionOneAlternative); _compoundProperties.AddCompoundGroupSelection(_compoundGroupSelectionTwoAlternatives); _compoundProperties.Compound = _compound; _enzymaticProcess = new EnzymaticProcess { Name = "EnzymaticProcess" }; _anotherEnzymaticProcess = new EnzymaticProcess { Name = "AnotherEnzymaticProcess", MoleculeName = "CYP3A4" }; _specificBindingProcess = new SpecificBindingPartialProcess { Name = "SpecificBinding" }; _gfrTransportProcess = new SystemicProcess { Name = "Transport", SystemicProcessType = SystemicProcessTypes.GFR }; _hepaticEnzymaticProcess = new SystemicProcess { Name = "Plasma Clearance", SystemicProcessType = SystemicProcessTypes.Hepatic }; _compound.AddProcess(_enzymaticProcess); _compound.AddProcess(_specificBindingProcess); _compound.AddProcess(_gfrTransportProcess); _compound.AddProcess(_hepaticEnzymaticProcess); _enzymaticPartialProcessSelection = new EnzymaticProcessSelection { ProcessName = _enzymaticProcess.Name }; _noEnzymaticSystemicProcessSelection = new SystemicProcessSelection { ProcessType = SystemicProcessTypes.Hepatic }; _specificBindingPartialProcessSelection = new ProcessSelection { ProcessName = _specificBindingProcess.Name }; _transportSystemicProcessSelection = new SystemicProcessSelection { ProcessName = _gfrTransportProcess.Name, ProcessType = _gfrTransportProcess.SystemicProcessType, }; _noEnzymaticPartialProcessSelection = new EnzymaticProcessSelection { MoleculeName = _anotherEnzymaticProcess.MoleculeName }; _compoundProperties.Processes.MetabolizationSelection.AddPartialProcessSelection(_enzymaticPartialProcessSelection); _compoundProperties.Processes.MetabolizationSelection.AddPartialProcessSelection(_noEnzymaticPartialProcessSelection); _compoundProperties.Processes.MetabolizationSelection.AddSystemicProcessSelection(_noEnzymaticSystemicProcessSelection); _compoundProperties.Processes.SpecificBindingSelection.AddPartialProcessSelection(_specificBindingPartialProcessSelection); _compoundProperties.Processes.TransportAndExcretionSelection.AddSystemicProcessSelection(_transportSystemicProcessSelection); _snapshotProcess1 = new CompoundProcessSelection { Name = _enzymaticPartialProcessSelection.ProcessName }; _snapshotProcess2 = new CompoundProcessSelection { Name = _specificBindingPartialProcessSelection.ProcessName }; _snapshotProcess3 = new CompoundProcessSelection { Name = _transportSystemicProcessSelection.ProcessName }; _snapshotProcess4 = new CompoundProcessSelection { SystemicProcessType = _noEnzymaticSystemicProcessSelection.ProcessType.SystemicProcessTypeId.ToString() }; _snapshotProcess5 = new CompoundProcessSelection { MoleculeName = _noEnzymaticPartialProcessSelection.MoleculeName }; _formulation = new Formulation { Id = "123456" }; _compoundProperties.ProtocolProperties.Protocol = _protocol; _compoundProperties.ProtocolProperties.AddFormulationMapping(new FormulationMapping { FormulationKey = "F1", TemplateFormulationId = _formulation.Id }); _project.AddBuildingBlock(_formulation); A.CallTo(() => _calculationMethodCacheMapper.MapToSnapshot(_compoundProperties.CalculationMethodCache)).Returns(_calculationMethodSnapshot); A.CallTo(() => _processMappingMapper.MapToSnapshot(_enzymaticPartialProcessSelection)).Returns(_snapshotProcess1); A.CallTo(() => _processMappingMapper.MapToSnapshot(_specificBindingPartialProcessSelection)).Returns(_snapshotProcess2); A.CallTo(() => _processMappingMapper.MapToSnapshot(_transportSystemicProcessSelection)).Returns(_snapshotProcess3); A.CallTo(() => _processMappingMapper.MapToSnapshot(_noEnzymaticSystemicProcessSelection)).Returns(_snapshotProcess4); A.CallTo(() => _processMappingMapper.MapToSnapshot(_noEnzymaticPartialProcessSelection)).Returns(_snapshotProcess5); A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess1, _enzymaticProcess)).Returns(_enzymaticPartialProcessSelection); A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess2, _specificBindingProcess)).Returns(_specificBindingPartialProcessSelection); A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess3, _gfrTransportProcess)).Returns(_transportSystemicProcessSelection); A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess4, A <NotSelectedSystemicProcess> ._)).Returns(_noEnzymaticSystemicProcessSelection); A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess5, A <EnzymaticProcess> ._)).Returns(_noEnzymaticPartialProcessSelection); return(_completed); }
protected override async Task Because() { _processSelection = await sut.MapToModel(_snapshot, _enzymaticProcess) as EnzymaticProcessSelection; }
protected override void Because() { _result = sut.Clone(A.Fake <ICloneManager>()) as EnzymaticProcessSelection; }
protected override async Task Because() { _processSelection = await sut.MapToModel(_snapshot, new CompoundProcessSnapshotContext(_enzymaticProcess, new SnapshotContext())) as EnzymaticProcessSelection; }