-
Notifications
You must be signed in to change notification settings - Fork 278
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
Трофимов Никита #227
base: master
Are you sure you want to change the base?
Трофимов Никита #227
Conversation
using System.Drawing; | ||
using System.Drawing.Imaging; | ||
using FluentAssertions; | ||
using NUnit.Framework; | ||
|
||
namespace TagsCloudVisualization | ||
{ | ||
|
||
[TestFixture] | ||
public class Spiral_Should |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Тесты обычно выносятся в отдельный проект. Это делается хотя бы для того, чтобы при релизе приложения не тащить с собой лишний код
public List<Rectangle> Rectangles() | ||
{ | ||
return _rectangles; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Сомнительно. Этот метод был добавлен только для того, чтобы использовать его в тестах, так обычно не делают. А получилось так потому что вся логика работы выполнена в одном классе, хотя следовало бы разделить на разные.
public List<Rectangle> Rectangles() => _rectangles;
if(rectangle.IsIntersectOthersRectangles(_rectangles)) | ||
break; | ||
} | ||
MoveRectangleToCenter(ref rectangle); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Очень сомнительно использование передачи по ссылке.... Так обычно не пишут из-за непредсказуемых мутаций, которые могут произойти внутри метода, логичнее было бы возвращать новый прямоугольник
private Bitmap _bitmap; | ||
private readonly Size shiftToBitmapCenter; | ||
private readonly List<Rectangle> _rectangles; | ||
public DrawCloud(List<Rectangle> rectangles, int width, int height) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не уверен, что хорошее решение, задавать ширину и высоту в конструкторе еще может быть окей, а вот сами прямоугольники я бы вынес в метод CreateImage
cs/TagsCloudVisualization/Program.cs
Outdated
List<Rectangle> GenerateRandomRectangles(CircularCloudLayouter layouter, int count) | ||
{ | ||
var rectangles = new List<Rectangle>(); | ||
var random = new Random(1); | ||
for (var i = 0; i < count; i++) | ||
{ | ||
var size = new Size(random.Next(40,100), random.Next(20, 60)); | ||
rectangles.Add(layouter.PutNextRectangle(size)); | ||
} | ||
return rectangles; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Метод внутри метода? Лучше в отдельный класс
cs/TagsCloudVisualization/Spiral.cs
Outdated
|
||
namespace TagsCloudVisualization; | ||
|
||
public class Spiral |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Непонятное название класса
Ну и само tdd как таковое отсутствует, все в одном коммите |
public class GenerateRandomRectangles | ||
{ | ||
public List<Rectangle> RectangleGenerator(CircularCloudLayouter layouter, int count) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Имя классы и имя метода местами нужно поменять
_step = step; | ||
} | ||
|
||
public Point NextPoint() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GetNextPoint
@69raccoon96