Conversation
…и исправлена ошибка в ходе тестирования
| void AddElement(double value); | ||
|
|
||
| // Remove element in stack and return deleted item | ||
| (bool, double) RemoveElement(); |
| namespace StackCalculator; | ||
|
|
||
| // Interface for the stack | ||
| interface IOperationsWithStack |
There was a problem hiding this comment.
Это не операции со стеком, это и есть стек
| Console.WriteLine("Enter an example in the postfix form"); | ||
| var stringWithExpression = Console.ReadLine(); | ||
|
|
||
| PostfixCalculator calculator = new PostfixCalculator(); |
There was a problem hiding this comment.
| PostfixCalculator calculator = new PostfixCalculator(); | |
| var calculator = new PostfixCalculator(); |
| namespace StackCalculator; | ||
|
|
||
| //Standart stack | ||
| abstract public class Stack : IOperationsWithStack |
There was a problem hiding this comment.
Этот класс, кажется, не нужен, потому что каждому настоящему стеку всё равно придётся переопределить все операции
| namespace StackCalculator; | ||
|
|
||
| // Calculator that counts algebraic expressions in postfix form | ||
| public class PostfixCalculator |
There was a problem hiding this comment.
У него нет никаких причин быть не статическим — у него всё равно нет своего состояния. Вот если бы стек Вы принимали в конструктор и запоминали, то да. Но непонятно, надо ли это.
| stackArray = new double[sizeStack]; | ||
| } | ||
|
|
||
| public bool ChangeStackSize(int size) |
There was a problem hiding this comment.
Этому методу ни к чему быть public:
- мы всё равно про него не знаем, потому что работаем со стеком через интерфейс, где этого метода нет, так что и вызвать его не сможем;
- изменение размера стека — внутреннее дело стека, никто извне не должен ему мочь это указать;
- этот метод сильно намекает на то, как стек устроен внутри — нарушение принципа сокрытия деталей реализации.
| // Stack implemented on list | ||
| public class StackList : Stack | ||
| { | ||
| private StackElement headStack; |
There was a problem hiding this comment.
Надо сделать так, чтобы nullability не ругалась
| public class Tests | ||
| { | ||
| private const double delta = 0.0000000000001; | ||
| PostfixCalculator calculator; |
There was a problem hiding this comment.
private, и надо пустую строку после
| [TestCaseSource(nameof(Stacks))] | ||
| public void TheCalculatorShouldWorkCorrectlyToReturnTheCorrectValueOnASimpleExample(Stack stack) | ||
| { | ||
| Setup(); |
There was a problem hiding this comment.
Обратите внимание на [SetUp] перед определением этого метода, и посмотрите, что делает этот атрибут
| { | ||
| Setup(); | ||
| var (isCorrect, number) = calculator.ConvertToAResponse("1 2 +", stack); | ||
| Assert.IsTrue(isCorrect && number == 3); |
There was a problem hiding this comment.
Надо разбить на два Assert.That
Ещё 1 пулреквест