Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Степан Заколюкин #33

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

StepanZakolukin
Copy link

@StepanZakolukin StepanZakolukin commented Nov 6, 2024

@Inreek

…ектах: при добавлении новых полей в класс Person не придется вносить изменений в код тестирующего метода; кроме того для сравнения объектов Person используется более читаемый синтаксис
@StepanZakolukin StepanZakolukin changed the title task-compare_objects Степан Заколюкин Nov 6, 2024
Comment on lines +28 to +38
public int GetHashCode()
{
var result = 0;
var degree = 0;
foreach (var field in GetType().GetFields())
{
if (field.IsStatic || field.Name == "Id") continue;
result += (int)Math.Pow(field.GetValue(this).GetHashCode(), ++degree);
}

return result;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

оч тяжёлые операции для GetHashCode. будут тратить много времени если царей будет много

ClassicAssert.AreEqual(expectedTsar.Parent.Age, actualTsar.Parent.Age);
ClassicAssert.AreEqual(expectedTsar.Parent.Height, actualTsar.Parent.Height);
ClassicAssert.AreEqual(expectedTsar.Parent.Parent, actualTsar.Parent.Parent);
actualTsar.Should().Be(expectedTsar);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я так понял ты написал GetHashCode и Equals чтобы тут была одна строчка

Кажется, тут задумывалось другое решение. Погугли у fluent assertions метод сравнения объектов по структуре. Он умеет сравнивать объекты в одну строчку и без GetHashCode

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants