public void EnvelopeComparer_WithSidesOfTheTriangles_ShouldReturnTrue(double firstHeight, double firstWidth,
                                                                              double secondHeigh, double secondWidth, EnvelopeCompareStages expected)
        {
            Envelope first  = new Envelope(firstHeight, firstWidth);
            Envelope second = new Envelope(secondHeigh, secondWidth);

            EnvelopeComparer comparer = new EnvelopeComparer();

            Assert.Equal(expected, comparer.CompareEnvelops(first, second));
        }
Пример #2
0
        public void Compare_CantBePutIn_Minus1()
        {
            Envelope envelope1 = new Envelope(20.0, 20.0);
            Envelope envelope2 = new Envelope(10.0, 30.0);
            int      expected  = -1;

            EnvelopeComparer envelopeComparer = new EnvelopeComparer();
            int result = envelopeComparer.Compare(envelope1, envelope2);

            Assert.AreEqual(expected, result);
        }
Пример #3
0
        public void Compare_Equals_0()
        {
            Envelope envelope1 = new Envelope(10.5, 15.5);
            Envelope envelope2 = new Envelope(15.5, 10.5);
            int      expected  = 0;

            EnvelopeComparer envelopeComparer = new EnvelopeComparer();
            int result = envelopeComparer.Compare(envelope1, envelope2);

            Assert.AreEqual(expected, result);
        }
Пример #4
0
        public void Compare_FirstBigget_1()
        {
            Envelope envelope1 = new Envelope(10.0, 15.0);
            Envelope envelope2 = new Envelope(14.0, 8.0);
            int      expected  = 1;

            EnvelopeComparer envelopeComparer = new EnvelopeComparer();
            int result = envelopeComparer.Compare(envelope1, envelope2);

            Assert.AreEqual(expected, result);
        }
Пример #5
0
        static void Main(string[] args)
        {
            IVisualizer          vi             = new ConsoleUI();
            IEnvelopeCreator     eCreator       = new EnvelopeCreator();
            IComparer <Envelope> comparer       = new EnvelopeComparer();
            IEnvelopesStorage    eStorage       = new EnvelopesStorage(eCreator, comparer);
            IInnerDataValidator  iDataValidator = new InnerDataValidator();

            Controler cntrlr = new Controler(vi, eStorage, iDataValidator, args);

            cntrlr.Start();
        }
Пример #6
0
        public void Compare(double height1, double width1, double height2, double width2, int expected)
        {
            // Arrange
            EnvelopeComparer comparer = new EnvelopeComparer(2);

            comparer.MainEnvelope = new Envelope(height1, width1);
            comparer.Insert(0, new Envelope(height2, width2));

            // Act
            int real = comparer.Compare(comparer[0]);

            // Assert
            Assert.AreEqual(real, expected);
        }
Пример #7
0
        static void Main(string[] args)
        {
            args = Console.ReadLine().Split(' ');
            int size = Convert.ToInt32(args[0]);
            int p0   = Convert.ToInt32(args[1]);
            int p1   = Convert.ToInt32(args[2]);

            int[] a0 = new int[size];
            int[] a1 = new int[size];
            SortedDictionary <int, List <int> > dict = new SortedDictionary <int, List <int> >();

            for (int i = 0; i < size; i++)
            {
                args = Console.ReadLine().Split(' ');
                int e0 = Convert.ToInt32(args[0]);
                int e1 = Convert.ToInt32(args[1]);
                if (e0 > p0 && e1 > p1)
                {
                    a0[i] = e0;
                    a1[i] = e1;
                    List <int> list;
                    if (!dict.TryGetValue(a0[i], out list))
                    {
                        dict.Add(a0[i], list = new List <int>());
                    }
                    list.Add(i);
                }
            }

            if (dict.Count == 0)
            {
                Console.WriteLine(0);
                return;
            }
            comparer = new EnvelopeComparer(a1);
            List <EnvelopeSet> envelopeSetList = new List <EnvelopeSet>(dict.Values.Select(l => { return(new EnvelopeSet(l)); }));

            List <EnvelopeSet> result = new List <EnvelopeSet>();

            MysteriousPresent(result, envelopeSetList, 0);
            Console.WriteLine(best.Count());
            Console.WriteLine(string.Join(" ", best.Select(i => i + 1)));
        }
Пример #8
0
        public void Initialize()
        {
            const int  ENVELOPES_NUMBER = 2;
            IViewer    viewer           = new Viewer();
            IValidator validator        = new Validator();

            IEnvelope[] envelopesCouple = new IEnvelope[ENVELOPES_NUMBER];

            do
            {
                for (int numberOfEnvelope = 0; numberOfEnvelope < ENVELOPES_NUMBER; numberOfEnvelope++)
                {
                    IParser parser = new Parser(viewer, validator);
                    envelopesCouple[numberOfEnvelope] = new EnvelopeCreator(parser).createdEnvelope;
                }

                IEnvelopeComparer comparer = new EnvelopeComparer(envelopesCouple[0], envelopesCouple[1]);
                viewer.CompareResult(comparer);
            }while (viewer.Continue());
        }
Пример #9
0
        static void Main(string[] args)
        {
            Envelope         firstEnvelope  = new Envelope(10, 15);
            Envelope         secondEnvelope = new Envelope(12, 18);
            UserAction       action         = UserAction.NoAction;
            Menu             uiMenu         = new Menu();
            EnvelopeComparer comparer       = new EnvelopeComparer();

            int result = comparer.Compare(firstEnvelope, secondEnvelope);

            do
            {
                action = uiMenu.GetUserChoise();

                switch (action)
                {
                case UserAction.Enter:
                    break;

                default:
                    break;
                }
            } while (action != UserAction.Exit);
        }
Пример #10
0
        protected virtual void AskEnvelops()
        {
            bool             isMainEnvelope   = true;
            EnvelopeComparer envelopeComparer = new EnvelopeComparer(_inboxParams.QuantityEnvelopes);

            for (int i = 0; i < _inboxParams.QuantityEnvelopes; i++)
            {
                _view.AskInputEnvelope(String.Format(MessagesResources.AskInputEnvelope, i + 1));
                _currentEnvelope = new Envelope();
                bool isFailed;

                do
                {
                    isFailed = false;
                    try
                    {
                        _view.AskInputHeight(MessagesResources.AskInputHeight);
                    }
                    catch (Exception ex)
                    {
                        _view.PrintErrorText(ex.Message);
                        isFailed = true;
                    }
                } while (isFailed);

                do
                {
                    isFailed = false;
                    try
                    {
                        _view.AskInputWidth(MessagesResources.AskInputWidth);
                    }
                    catch (Exception ex)
                    {
                        _view.PrintErrorText(ex.Message);
                        isFailed = true;
                    }
                } while (isFailed);

                if (isMainEnvelope)
                {
                    envelopeComparer.MainEnvelope = _currentEnvelope;
                    isMainEnvelope = false;
                }
                else
                {
                    envelopeComparer.Insert(i - 1, _currentEnvelope);
                }
            }

            foreach (Envelope envelope in envelopeComparer)
            {
                if (envelopeComparer.Compare(envelope) > 0)
                {
                    _view.PrintResultText(MessagesResources.ResultPositive);
                }
                else
                {
                    _view.PrintResultText(MessagesResources.ResultNegative);
                }
            }
        }