Файл query.sql
содержит ответ на задание с SQL (включая запросы на создание таблиц и ввод данных).
Для проекта настроен CI для автоматической компиляции и тестирования.
- Абстрактный класс
Shape
содержит функционал для кэширования (ленивая инициализация) площади. - Структура
Distance
является обёрткой над значениемdouble
, валидируя его при создании объекта. Triangle
имеет дополнительное свойствоIsEquilateralTriangle
для определения, является ли треугольник равносторонним.- В целях оптимизации операция возведения в квадрат реализована перемножением значения на себя - см. сравнение на SharpLab.
- Интерфейс
IShape
наследуется от интерфейсаIEquatable<IShape>
, что позволяет сравнивать фигуры (реализующие данный интерфейс). - Также каждый класс реализует интерфейс
IEquatable<T>
(к примеру,IEquatable<Circle>
для классаCircle
) для сравнения фигур себе подобных (к примеру, два треугольника с равными сторонами равны вне зависимости от их порядка). - Класс
Circle
реализует интерфейсIComparable<Circle>
, что позволяет сравнивать величину разных кругов (чей радиус больше или меньше). - Unit test coverage составляет 100%.