public void WeightedModeTest_NonComparable()
{
object a = new object();
object b = new object();
object c = new object();
object[] values;
int[] weight;
object actual;
values = new[] { a, a, b, c };
weight = new[] { 1, 1, 5, 1 };
actual = Measures.WeightedMode(values, weight);
Assert.AreEqual(b, actual);
values = new[] { a, b, b, c };
weight = new[] { 5, 1, 1, 1 };
actual = Measures.WeightedMode(values, weight);
Assert.AreEqual(a, actual);
values = new[] { a, b, b, c };
weight = new[] { 2, 1, 1, 5 };
actual = Measures.WeightedMode(values, weight);
Assert.AreEqual(c, actual);
values = new[] { a, b, c, c };
weight = new[] { 1, 1, 5, 5 };
actual = Measures.WeightedMode(values, weight);
Assert.AreEqual(c, actual);
values = new[] { a, a, b, c };
weight = new[] { 1, 1, 1, 1 };
actual = Measures.WeightedMode(values, weight);
Assert.AreEqual(a, actual);
values = new[] { a, b, b, c };
weight = new[] { 1, 1, 1, 1 };
actual = Measures.WeightedMode(values, weight);
Assert.AreEqual(b, actual);
values = new[] { a, b, b, c };
weight = new[] { 1, 1, 1, 1 };
actual = Measures.WeightedMode(values, weight);
Assert.AreEqual(b, actual);
values = new[] { a, b, c, c };
weight = new[] { 1, 1, 1, 1 };
actual = Measures.WeightedMode(values, weight);
Assert.AreEqual(c, actual);
}