public void ConstructorGeneratesExpertone() { var expertone = new Expertone<string>(this.GetTestExpertise()); var lowerItemslist = expertone.LowerValues; Assert.NotNull(lowerItemslist); Assert.AreEqual(11, lowerItemslist.Count); Assert.AreEqual(0.9m, lowerItemslist[0]); Assert.AreEqual(0.9m, lowerItemslist[1]); Assert.AreEqual(0.9m, lowerItemslist[2]); Assert.AreEqual(0.9m, lowerItemslist[3]); Assert.AreEqual(0.9m, lowerItemslist[4]); Assert.AreEqual(0.7m, lowerItemslist[5]); Assert.AreEqual(0.6m, lowerItemslist[6]); Assert.AreEqual(0.3m, lowerItemslist[7]); Assert.AreEqual(0.3m, lowerItemslist[8]); Assert.AreEqual(0.3m, lowerItemslist[9]); Assert.AreEqual(0m, lowerItemslist[10]); var upperItemslist = expertone.UpperValues; Assert.NotNull(upperItemslist); Assert.AreEqual(11, upperItemslist.Count); Assert.AreEqual(1, upperItemslist[0]); Assert.AreEqual(0.9m, upperItemslist[1]); Assert.AreEqual(0.9m, upperItemslist[2]); Assert.AreEqual(0.9m, upperItemslist[3]); Assert.AreEqual(0.9m, upperItemslist[4]); Assert.AreEqual(0.8m, upperItemslist[5]); Assert.AreEqual(0.8m, upperItemslist[6]); Assert.AreEqual(0.7m, upperItemslist[7]); Assert.AreEqual(0.6m, upperItemslist[8]); Assert.AreEqual(0.5m, upperItemslist[9]); Assert.AreEqual(0m, upperItemslist[10]); }
public void GetExpectedValueRetursProperInterval() { var expertone = new Expertone<string>(this.GetTestExpertise()); var expectedValue = expertone.GetExpectedValue(); Assert.NotNull(expectedValue); Assert.AreEqual(0.67m, expectedValue.LowerBound); Assert.AreEqual(0.8m, expectedValue.UpperBound); }
/// <summary> /// Aggregates the linguistic information privided in the expertise using the expertone method. /// </summary> /// <param name="expertise">The expertise.</param> /// <param name="hierarchy">The hierarchy for the labels in the expertise.</param> /// <param name="referenceLevel">The reference level where we shall standarize the expertise.</param> /// <returns> /// An adjusted interval aggregating the linguistic information provided in the expertise. /// </returns> Interval IExpertoneAggregator.AggregateByExpertone(Expertise expertise, Hierarchy hierarchy, int referenceLevel) { Contract.NotNull(expertise, "expertise"); Contract.NotNull(hierarchy, "hierarchy"); var standardExpertise = this.standardizer.Standardize(expertise, hierarchy, referenceLevel); TwoTupleCardinalities cardinalities = new TwoTupleCardinalities(standardExpertise); var expertone = new Expertone<TwoTuple>(cardinalities); var expectedValue = expertone.GetExpectedValue(); var expectedInterval = expertone.Interval.LowerBound + ((expertone.Interval.Width) * expectedValue); return expectedInterval; }