Код: Выделить всё
public static class TestData
{
public static object[,] Island1()
{
object[,] res = new object[3, 2];
res[0, 0] = 1;
res[0, 1] = 0;
res[1, 0] = 1;
res[1, 1] = 1;
res[2, 0] = 1;
res[2, 1] = 0;
return res;
}
}
public class ComponentsFinder
{
public object[] GetIslands()
{
return new object[]{TestData.Island1()};
}
}
Код: Выделить всё
[TestClass]
public class TestCompomentsFinder
{
[TestMethod]
public void FirstTest()
{
object[,] island1 = TestData.Island1();
object[] expected = new object[] {island1};
object[] actual = new ComponentsFinder().GetIslands();
bool res = actual.SequenceEqual(expected);
Assert.IsTrue(res);
}
}
Был бы у меня настоящий класс C вместо объекта[,] это не было бы проблемой, как я бы сделал C правильно реализует IEquatable, и переопределение Equals будет затем вызвано SequenceEquals, и тест пройдет нормально.
Но здесь у меня нет класса, так что мне делать? Должен ли я действительно обернуть все в классы или есть другой способ проверить равенство моих объектов[] (что означает проверку равенства объектов [,] в смысле наличия одинаковых размеров и одинаковых соответствующих коэффициентов, коэффициенты моего объекта [,] являются типом, реализующим IEquatable)?