/// <summary>
        /// Инициализация разных стаканов для тестирования.
        /// </summary>
        /// <returns>Массив разных типов стакана.</returns>
        static object[] GlassesCases()
        {
            var height         = new BorderConditions <double>(_min, _min, _max);
            var diameterBottom = new BorderConditions <double>(_min / 2,
                                                               _min / 2, _max / 2);
            var angleHeight = new BorderConditions <double>(_minAngle,
                                                            _minAngle, _maxAngle);
            var depthSideForFacetedGlass = new BorderConditions <double>(
                _minDepthForFacetedGlass, _minDepthForFacetedGlass,
                _maxDepthSide);
            var depthBottom = new BorderConditions <double>(
                _minDepthForFacetedGlass, _minDepthForFacetedGlass,
                _maxDepthBottom);
            var countFaceted = new BorderConditions <int>(
                _minCountFaceted, _minCountFaceted, _maxCountFaceted);

            var facetedGlass = new FacetedGlass(height, diameterBottom,
                                                angleHeight, depthSideForFacetedGlass, depthBottom,
                                                countFaceted);

            var cleanGlass = new CleanGlass(diameterBottom, height);

            countFaceted = new BorderConditions <int>(_minCountStrips,
                                                      _minCountStrips, _maxCountStrips);
            var crimpGlass = new CrimpGlass(height,
                                            diameterBottom, countFaceted);

            var glasses = new object[] {
                cleanGlass,
                facetedGlass,
                crimpGlass
            };

            return(glasses);
        }
        public void Setup()
        {
            var height         = new BorderConditions <double>(_min, _min, _max);
            var diameterBottom = new BorderConditions <double>(_min / 2,
                                                               _min / 2, _max / 2);
            var countFaceted = new BorderConditions <int>(_minCountFaceted,
                                                          _minCountFaceted, _maxCountFaceted);

            _crimpGlass = new CrimpGlass(height, diameterBottom,
                                         countFaceted);
        }
        /// <summary>
        /// Инициализация параметров разных типов стакана.
        /// </summary>
        public Glasses()
        {
            var height         = new BorderConditions <double>(_min, _max, _max);
            var diameterBottom = new BorderConditions <double>(_min / 2,
                                                               _max / 2, _max / 2);
            var angleHeight = new BorderConditions <double>(_minAngle,
                                                            _maxAngle, _maxAngle);
            var depthSideForFacetedGlass = new BorderConditions <double>(
                _minDepthForFacetedGlass, _maxDepthSide,
                _maxDepthSide);
            var depthBottom = new BorderConditions <double>(
                _minDepthForFacetedGlass, _maxDepthBottom,
                _maxDepthBottom);
            var countFaceted = new BorderConditions <int>(
                _minCountFaceted, _maxCountFaceted, _maxCountFaceted);

            var facetedGlass = new FacetedGlass(height, diameterBottom,
                                                angleHeight, depthSideForFacetedGlass, depthBottom,
                                                countFaceted);

            var builderCleanGlass   = new BuilderCleanGlass();
            var builderFacetedGlass = new BuilderFacetedGlass();
            var builderCrimpGlass   = new BuilderCrimpGlass();

            Add(new GlassViewModel(facetedGlass,
                                   builderFacetedGlass, "Гранёный"));

            var cleanGlass = new CleanGlass(diameterBottom, height);

            countFaceted = new BorderConditions <int>(_minCountStrips,
                                                      _maxCountStrips, _maxCountStrips);
            var crimpGlass = new CrimpGlass(height,
                                            diameterBottom, countFaceted);

            Add(new GlassViewModel(cleanGlass,
                                   builderCleanGlass, "Гладкий"));
            Add(new GlassViewModel(crimpGlass,
                                   builderCrimpGlass, "Гофрированный"));
        }