internal void NotEqualOperator_WithUnequalStates_ReturnsTrue() { // Arrange // Act var fuzzyState1 = FuzzyState.Create("High"); var fuzzyState2 = FuzzyState.Create("Low"); // Assert Assert.True(fuzzyState1 != fuzzyState2); }
internal void ToString_ReturnsExpectedString() { // Arrange var fuzzyState = FuzzyState.Create("High"); // Act var result = fuzzyState.ToString(); // Assert Assert.Equal("high", result); }
internal void GetHashcode_ReturnsExpectedValue() { // Arrange var fuzzyState = FuzzyState.Create("High"); // Act var result = fuzzyState.GetHashCode(); // Assert Assert.Equal(-77933506, result); }
internal void GetState_ReturnsExpectedState(double input, Enum state) { // Arrange var temperature = StubLinguisticVariableFactory.WaterTemp(); // Act var result = temperature.GetState(input); // Assert Assert.Equal(FuzzyState.Create(state), result); }
internal void GetSet_ReturnsTheFuzzySet() { // Arrange var temperature = StubLinguisticVariableFactory.WaterTemp(); // Act var result = temperature.GetSet(WaterTemp.Frozen); // Assert Assert.Equal(FuzzyState.Create("frozen"), result.State); }
internal void IsMember_WhenVariableDoesNotContainMember_ReturnsTrue() { // Arrange var temperature = StubLinguisticVariableFactory.WaterTemp(); // Act var result = temperature.IsMember(FuzzyState.Create("vapour")); // Assert Assert.False(result); }
internal void ToString_ReturnsExpectedString() { // Arrange var waterTemp = StubLinguisticVariableFactory.WaterTemp(); var conclusion = new Conclusion(waterTemp, LogicOperators.Is(), FuzzyState.Create(WaterTemp.Cold)); // Act var result = conclusion.ToString(); // Assert Assert.Equal("THEN WaterTemp IS cold", result); }
internal void ValidateProposition_WhenStateNotAMemberOfLinguisticVariable_Throws() { // Arrange var waterTemp = StubLinguisticVariableFactory.WaterTemp(); // Invalid fuzzy state. var fuzzyState = FuzzyState.Create(PumpSpeed.Off); // Act // Assert Assert.Throws <InvalidOperationException>(() => new Proposition(waterTemp, LogicOperators.Is(), fuzzyState)); }
/// <summary> /// Initializes a new instance of the <see cref="Premise"/> class. /// </summary> /// <param name="connective"> /// The connective logic operator. /// </param> /// <param name="variable"> /// The linguistic variable. /// </param> /// <param name="evaluator"> /// The evaluation logic operator. /// </param> /// <param name="state"> /// The fuzzy state. /// </param> public Premise( IConnectiveOperator connective, LinguisticVariable variable, IEvaluationOperator evaluator, FuzzyState state) : base(variable, evaluator, state) { Validate.NotNull(connective, nameof(connective)); Validate.NotNull(variable, nameof(variable)); Validate.NotNull(state, nameof(state)); this.Connective = connective; this.Subject = variable.Subject; }
/// <summary> /// Initializes a new instance of the <see cref="Proposition"/> class. /// </summary> /// <param name="variable"> /// The linguistic variable. /// </param> /// <param name="evaluator"> /// The evaluation logic operator. /// </param> /// <param name="state"> /// The fuzzy state. /// </param> public Proposition( LinguisticVariable variable, IEvaluationOperator evaluator, FuzzyState state) { Validate.NotNull(variable, nameof(variable)); Validate.NotNull(evaluator, nameof(evaluator)); Validate.NotNull(state, nameof(state)); this.Variable = variable; this.Evaluator = evaluator; this.State = state; this.ValidateProposition(); }
internal void ToString_ReturnsExpectedString() { // Arrange var waterTemp = StubLinguisticVariableFactory.WaterTemp(); var premise = new Premise( LogicOperators.If(), waterTemp, LogicOperators.Is(), FuzzyState.Create(WaterTemp.Cold)); // Act var result = premise.ToString(); // Assert Assert.Equal("IF WaterTemp IS cold", result); }
/// <summary> /// Initializes the SpamSum structures /// </summary> public SpamSumContext() { self = new FuzzyState { Bh = new BlockhashContext[NUM_BLOCKHASHES] }; for (int i = 0; i < NUM_BLOCKHASHES; i++) { self.Bh[i].Digest = new byte[SPAMSUM_LENGTH]; } self.Bhstart = 0; self.Bhend = 1; self.Bh[0].H = HASH_INIT; self.Bh[0].Halfh = HASH_INIT; self.Bh[0].Digest[0] = 0; self.Bh[0].Halfdigest = 0; self.Bh[0].Dlen = 0; self.TotalSize = 0; roll_init(); }