Example #1
0
        public void UsageCount()
        {
            var observers = new ObserverSet <DummyObserver>();
            var dummyA    = new DummyObserver();
            var dummyB    = new DummyObserver();

            observers.Add(dummyA);
            observers.Use(d => d.UsedCount++);
            Assert.AreEqual(1, dummyA.UsedCount);

            observers.Add(dummyB);
            observers.Use(d => d.UsedCount++);
            Assert.AreEqual(2, dummyA.UsedCount);
            Assert.AreEqual(1, dummyB.UsedCount);

            observers.Remove(dummyA);
            observers.Use(d => d.UsedCount++);
            Assert.AreEqual(2, dummyA.UsedCount);
            Assert.AreEqual(2, dummyB.UsedCount);
        }
Example #2
0
        public void BasicUsage()
        {
            var observers = new ObserverSet <DummyObserver>();
            var dummy     = new DummyObserver();
            var weakDummy = new DummyObserver();

            observers.Add(dummy);
            observers.AddWeak(weakDummy);
            observers.Use(d => d.Used = true);
            Assert.True(dummy.Used);
            Assert.True(weakDummy.Used);
        }
Example #3
0
        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 = metabolizationSelection.ProductName(CoreConstants.Molecule.Metabolite);
            _moleculeBuildingBlock.Add(new MoleculeBuilder {
                Name = _complexProductName, QuantityType = QuantityType.Complex
            });
            compoundProperties.Processes.SpecificBindingSelection.AddPartialProcessSelection(specificBindingSelection);
            compoundProperties.Processes.MetabolizationSelection.AddPartialProcessSelection(metabolizationSelection);

            var observerSet = new ObserverSet();
            var observerSetBuildingBlock = new UsedBuildingBlock("OBS_ID", PKSimBuildingBlockType.ObserverSet)
            {
                BuildingBlock = observerSet
            };

            _observer = new AmountObserverBuilder().WithName("Test");
            observerSet.Add(_observer);
            _simulation.AddUsedBuildingBlock(observerSetBuildingBlock);
        }
Example #4
0
 /// <summary>
 /// Adds a subsystem observer.
 /// </summary>
 /// <param name="observer">The observer to add.</param>
 /// <returns>The observer was successfully added.</returns>
 /// <remarks>The observer will be immediately receive registration callbacks if the subsystem is already active.</remarks>
 public static bool Register(IObserver <T> observer) => observers.Add(observer);