public void BasicUsage() { var a = new Set <int>(); a.Add(0); a.Add(1); var b = new Set <int>(); b.Add(1); b.Add(2); b.Add(3); var proxy = new SetProxy <int>(); Assert.AreEqual(0, proxy.Count); proxy.Target = a; Assert.AreEqual(2, proxy.Count); Assert.True(proxy.Contains(0)); Assert.True(proxy.Contains(1)); proxy.Target = b; Assert.AreEqual(3, proxy.Count); Assert.False(proxy.Contains(0)); Assert.True(proxy.Contains(1)); Assert.True(proxy.Contains(2)); proxy.Target = null; Assert.AreEqual(0, proxy.Count); Assert.False(proxy.Contains(0)); Assert.False(proxy.Contains(1)); Assert.False(proxy.Contains(2)); }
public CompositeModelState(CollectionsFactory factory) { this._methods = factory.NewList <CompositeMethodModelMutable, CompositeMethodModelMutable, CompositeMethodModel>(); this._fields = factory.NewList <FieldModelMutable, FieldModelMutable, FieldModel>(); this._constructors = factory.NewList <ConstructorModelMutable, ConstructorModelMutable, ConstructorModel>(); this._specialMethods = factory.NewList <SpecialMethodModelMutable, SpecialMethodModelMutable, SpecialMethodModel>(); this._publicTypes = factory.NewSetProxy <Type>(); }
public void Setup() { this.fuzzyModule = new FuzzyModule(); const float range = 1000; // max distance from one corner to another const float nearPeak = .25f * range; const float mediumPeak = .5f * range; const float farPeak = .75f * range; Variable ownDistanceVariable = this.fuzzyModule.CreateVariable(OWN_DISTANCE_VARIABLE_KEY); SetProxy selfNear = ownDistanceVariable.AddLeftShoulder("near", 0, nearPeak, mediumPeak); SetProxy selfMedium = ownDistanceVariable.AddTriangleSet("medium", nearPeak, mediumPeak, farPeak); SetProxy selfFar = ownDistanceVariable.AddRightShoulder("far", mediumPeak, farPeak, range); Variable avgTeammatesDistanceVariable = this.fuzzyModule.CreateVariable(AVG_TEAMMATE_DISTANCE_VARIABLE_KEY); SetProxy teamNear = avgTeammatesDistanceVariable.AddLeftShoulder("near", 0, nearPeak, mediumPeak); SetProxy teamMedium = avgTeammatesDistanceVariable.AddTriangleSet("medium", nearPeak, mediumPeak, farPeak); SetProxy teamFar = avgTeammatesDistanceVariable.AddRightShoulder("far", mediumPeak, farPeak, range); Variable strategyVariable = this.fuzzyModule.CreateVariable(OWN_STRATEGY_VARIABLE_KEY); this.defensive = strategyVariable.AddLeftShoulder("defensive", 0, .4, .6); this.offensive = strategyVariable.AddRightShoulder("offensive", .4, .6, 1); /* * IF I am near AND teammates are near * THEN offensive * * IF I am near AND teammates are medium distance or far * THEN defensive * * IF I am medium distance AND teammates are (medium distance OR far) * THEN defensive * * IF teammates are near * THEN offensive * * IF I am far * THEN offensive */ this.rule_nearAndNear = new And(selfNear, teamNear); this.rule_nearAndMedium = new And(selfNear, teamMedium); this.rule_mediumAndMediumOrFar = new And(selfMedium, new Or(teamMedium, teamFar)); this.rule_near = teamNear; this.rule_far = selfFar; this.fuzzyModule.AddRule(this.rule_nearAndNear, this.offensive); this.fuzzyModule.AddRule(this.rule_nearAndMedium, this.defensive); this.fuzzyModule.AddRule(this.rule_mediumAndMediumOrFar, this.defensive); this.fuzzyModule.AddRule(this.rule_near, this.offensive); this.fuzzyModule.AddRule(this.rule_far, this.offensive); }
public Think(Ship owner, World world) : base(owner) { this.world = world; this.random = new Random(); this.fuzzyModule = new FuzzyModule(); const float range = 1000; // max distance from one corner to another const float nearPeak = .25f * range; const float mediumPeak = .5f * range; const float farPeak = .75f * range; Variable ownDistanceVariable = this.fuzzyModule.CreateVariable(OWN_DISTANCE_VARIABLE_KEY); SetProxy selfNear = ownDistanceVariable.AddLeftShoulder("near", 0, nearPeak, mediumPeak); SetProxy selfMedium = ownDistanceVariable.AddTriangleSet("medium", nearPeak, mediumPeak, farPeak); SetProxy selfFar = ownDistanceVariable.AddRightShoulder("far", mediumPeak, farPeak, range); Variable avgTeammatesDistanceVariable = this.fuzzyModule.CreateVariable(AVG_TEAMMATE_DISTANCE_VARIABLE_KEY); SetProxy teamNear = avgTeammatesDistanceVariable.AddLeftShoulder("near", 0, nearPeak, mediumPeak); SetProxy teamMedium = avgTeammatesDistanceVariable.AddTriangleSet("medium", nearPeak, mediumPeak, farPeak); SetProxy teamFar = avgTeammatesDistanceVariable.AddRightShoulder("far", mediumPeak, farPeak, range); Variable strategyVariable = this.fuzzyModule.CreateVariable(OWN_STRATEGY_VARIABLE_KEY); this.defensive = strategyVariable.AddLeftShoulder("defensive", 0, .3, .5); this.offensive = strategyVariable.AddRightShoulder("offensive", .3, .5, 1); /* * IF I am near AND teammates are near * THEN offensive * * IF I am near AND teammates are medium distance or far * THEN defensive * * IF I am medium distance AND teammates are (medium distance OR far) * THEN defensive * * IF teammates are near * THEN offensive * * IF I am far * THEN offensive */ this.fuzzyModule.AddRule(new And( new Or(selfNear, selfMedium), new Or(teamMedium, teamFar) ), this.defensive); this.fuzzyModule.AddRule(new Or(teamNear, selfFar), this.offensive); }
public void PutWord_SetProxyTest() { CreateSetProxyTest(); SetProxy setProxy = setProxy_; byte[] bytes1 = Encoding.ASCII.GetBytes("test array 1"); byte[] bytes2 = Encoding.ASCII.GetBytes("test array 2"); Word word1 = new Word(42, bytes1); Word word2 = new Word(43, bytes2); List <Word> words = new List <Word> { word1, word2 }; setProxy.PutWord(42, words); }
public void FindWord_SetProxyTest() { PutWord_SetProxyTest(); SetProxy setProxy = setProxy_; //byte[] bytes = new byte[16]; byte[] bytes42 = null; bytes42 = setProxy.FindWord(42, false); if (bytes42 != null) { string string42 = Encoding.ASCII.GetString(bytes42); } byte[] bytes43 = null; bytes43 = setProxy.FindWord(43, false); if (bytes43 != null) { string string43 = Encoding.ASCII.GetString(bytes43); } }
internal SingletonApplicationModelImmutable( SingletonArchitecture architecture, Type genericCompositePropertyMixin, Type genericCompositeEventMixin, Type genericFragmentBaseType, DictionaryQuery <CompositeModelType, CompositeModelTypeAssemblyScopeSupport> modelTypeAssemblyScopeSupport, out DictionaryQuery <CompositeModelType, CompositeModelTypeModelScopeSupport> compositeModelTypeSupport, out DictionaryProxy <Int32, CompositeModel> models, out SetProxy <CompositeModel> modelsForContainer, Assembler assembler ) : base(architecture, genericCompositePropertyMixin, genericCompositeEventMixin, genericFragmentBaseType, modelTypeAssemblyScopeSupport, out compositeModelTypeSupport, out models) { ArgumentValidator.ValidateNotNull("Assembler", assembler); this._assembler = assembler; this._compositeModels = this.CollectionsFactory.NewSetProxy <CompositeModel>(); modelsForContainer = this._compositeModels; }
public void Test_WhenCalculateCalled_ShouldOrWithMembership() { // Arrange FuzzySet antecedentSet = new TriangleSet(.5, .3, .3); antecedentSet.DegreeOfMembership = .7; Term antecedent = new SetProxy(antecedentSet); FuzzySet consequenceSet = new TriangleSet(.5, .3, .3); consequenceSet.DegreeOfMembership = 0; Term consequence = new SetProxy(consequenceSet); Rule rule = new Rule(antecedent, consequence); // Act rule.Calculate(); // Assert Assert.AreEqual(.7, antecedent.Membership, .00001); Assert.AreEqual(.7, consequence.Membership, .00001); }
public void ObserveAdded() { var a = new Set <int>(); a.Add(1); a.Add(2); var b = new Set <int>(); b.Add(4); b.Add(8); var proxy = new SetProxy <int>(); var sum = 0; var observers = new Disposable() .Add(proxy.Added(item => sum += item)) .Add(proxy.Removed(item => sum -= item)); proxy.Target = a; Assert.AreEqual(3, sum); a.Remove(1); Assert.AreEqual(2, sum); proxy.Target = b; Assert.AreEqual(12, sum); b.Add(1); Assert.AreEqual(13, sum); proxy.Target = null; Assert.AreEqual(0, sum); b.Remove(8); proxy.Target = b; Assert.AreEqual(5, sum); observers.Dispose(); b.Add(7); proxy.Target = null; Assert.AreEqual(5, sum); }
public void CreateSetProxyTest() { SetProxy setProxy = new SetProxy(4, 2, 16); setProxy_ = setProxy; }
public ModuleModelState(CollectionsFactory collectionsFactory) { this._compositeModels = collectionsFactory.NewSetProxy <CompositeModel>(); this._compositeVisibilities = new Dictionary <CompositeModelType, IDictionary <CompositeModel, Visibility> >(); }