Example #1
0
        public void CanCompareEquality()
        {
            double     xMin      = 2600000.1234;
            EnvelopeXY envelope1 = new EnvelopeXY(xMin, 1200000.987654, 2601000.12,
                                                  1201000.98);

            EnvelopeXY envelope2 = new EnvelopeXY(xMin - 0.0001, 1200000.987654, 2601000.12,
                                                  1201000.98);

            Assert.IsFalse(envelope1.Equals(envelope2));
            Assert.IsTrue(envelope1.Equals(envelope2, 0.0001));
        }
Example #2
0
        public static EnvelopeMsg ToEnvelopeMsg([CanBeNull] EnvelopeXY envelope)
        {
            if (envelope == null)
            {
                return(null);
            }

            var result = new EnvelopeMsg
            {
                XMin = envelope.XMin,
                YMin = envelope.YMin,
                XMax = envelope.XMax,
                YMax = envelope.YMax
            };

            return(result);
        }
        private static void GetEnvelopeStatistics(
            [NotNull] ICollection <EnvelopeXY> envelopes,
            [CanBeNull] out EnvelopeXY unionedEnvelope,
            out double averageDensity)
        {
            Assert.ArgumentNotNull(envelopes, nameof(envelopes));

            unionedEnvelope = null;

            int    count            = 0;
            double totalSideLengths = 0;

            foreach (EnvelopeXY envelope in envelopes)
            {
                count++;

                if (unionedEnvelope == null)
                {
                    unionedEnvelope = new EnvelopeXY(envelope);
                }
                else
                {
                    unionedEnvelope.EnlargeToInclude(envelope);
                }

                totalSideLengths += envelope.Width;
                totalSideLengths += envelope.Height;
            }

            if (totalSideLengths > 0)
            {
                averageDensity = count > 0
                                                         ? totalSideLengths / count / 2
                                                         : double.NaN;
            }
            else if (unionedEnvelope != null)
            {
                averageDensity = count > 1
                                                         ? (unionedEnvelope.Width + unionedEnvelope.Height) / count / 2
                                                         : double.NaN;
            }
            else
            {
                averageDensity = double.NaN;
            }
        }
Example #4
0
        public void CanCreateString()
        {
            EnvelopeXY envelope = new EnvelopeXY(2600000.1234, 1200000.987654, 2601000.12,
                                                 1201000.98);
            string text = envelope.ToString();

            Console.WriteLine(text);

            Assert.AreEqual(
                "XMin: 2600000.1234 YMin: 1200000.987654 XMax: 2601000.12 YMax: 1201000.98", text);

            string formatted = envelope.Format(envelope, 2);

            Console.WriteLine(formatted);

            Assert.AreEqual(
                "XMin: 2'600'000.12 YMin: 1'200'000.99 XMax: 2'601'000.12 YMax: 1'201'000.98",
                formatted);
        }
Example #5
0
        public void CanUnion()
        {
            EnvelopeXY envelope1 = new EnvelopeXY(2600000.1234, 1200000.987654, 2601000.12,
                                                  1201000.98);

            EnvelopeXY envelope2 = new EnvelopeXY(2600050, 1200050, 2601111.12,
                                                  1201222.98);

            envelope1.EnlargeToInclude(envelope2);

            Assert.IsTrue(envelope1.Equals(
                              new EnvelopeXY(2600000.1234, 1200000.987654,
                                             2601111.12, 1201222.98)));

            EnvelopeXY envelope3 = new EnvelopeXY(2500000.1234, 1100000.987654,
                                                  2600050, 1200050);

            envelope1.EnlargeToInclude(envelope3);

            Assert.IsTrue(envelope1.Equals(
                              new EnvelopeXY(2500000.1234, 1100000.987654,
                                             2601111.12, 1201222.98)));
        }