Пример #1
0
        public void Substraction()
        {
            FltInterval a = new FltInterval(-10, 5);
            FltInterval b = new FltInterval(-5, 10);

            Assert.AreEqual(new FltInterval(-20, 10), a - b);
        }
Пример #2
0
        public void Addition()
        {
            FltInterval a = new FltInterval(-10, 5);
            FltInterval b = new FltInterval(-5, 10);

            Assert.AreEqual(new FltInterval(-15, 15), a + b);
        }
Пример #3
0
        public void Addition()
        {
            FltInterval a	= new FltInterval( -10, 5 );
            FltInterval b	= new FltInterval( -5, 10 );

            Assert.AreEqual( new FltInterval( -15, 15 ), a + b );
        }
Пример #4
0
        public void Negate()
        {
            FltInterval a = new FltInterval(-10, 5);
            FltInterval b = new FltInterval(-5, 10);

            Assert.AreEqual(new FltInterval(-5, 10), -a);
            Assert.AreEqual(new FltInterval(-10, 5), -b);
        }
Пример #5
0
        public void Union()
        {
            FltInterval a = new FltInterval(-100, 50);
            FltInterval b = new FltInterval(-50, 100);

            FltInterval c = a.Union(b);

            Assert.AreEqual(new FltInterval(-100, 100), c);
        }
Пример #6
0
        public void ContainsInterval()
        {
            FltInterval a = new FltInterval(-100, 100);
            FltInterval b = new FltInterval(-50, 50);

            Assert.IsTrue(a.Contains(a));
            Assert.IsTrue(a.Contains(b));
            Assert.IsFalse(b.Contains(a));
        }
Пример #7
0
        public void ContainsInterval()
        {
            FltInterval a	= new FltInterval( -100, 100 );
            FltInterval b	= new FltInterval( -50, 50 );

            Assert.IsTrue( a.Contains( a ) );
            Assert.IsTrue( a.Contains( b ) );
            Assert.IsFalse( b.Contains( a ) );
        }
Пример #8
0
        public void ContainsValue()
        {
            FltInterval i = new FltInterval(-100, 100);

            Assert.IsFalse(i.Contains(-101));
            Assert.IsTrue(i.Contains(-100));
            Assert.IsTrue(i.Contains(0));
            Assert.IsTrue(i.Contains(100));
            Assert.IsFalse(i.Contains(101));
        }
Пример #9
0
        public void ContainsValue()
        {
            FltInterval i	= new FltInterval( -100, 100 );

            Assert.IsFalse( i.Contains( -101 ) );
            Assert.IsTrue( i.Contains( -100 ) );
            Assert.IsTrue( i.Contains( 0 ) );
            Assert.IsTrue( i.Contains( 100 ) );
            Assert.IsFalse( i.Contains( 101 ) );
        }
Пример #10
0
        public void Equals()
        {
            FltInterval i = new FltInterval(-100, 100);
            FltInterval a = new FltInterval(-100, 100);
            FltInterval b = new FltInterval(-99, 100);
            FltInterval c = new FltInterval(-100, 99);

            Assert.IsTrue(i.Equals(a));
            Assert.IsFalse(i.Equals(b));
            Assert.IsFalse(i.Equals(c));
        }
Пример #11
0
        public void ExpToLog()
        {
            for (int idx = 0; idx < 1000; ++idx)
            {
                FltInterval x  = FltInterval.Random(1E6);
                FltInterval x1 = x.Exp();
                FltInterval x2 = x1.Log();

                Assert.IsTrue(x2.Contains(x));
            }
        }
Пример #12
0
        public override void UnboundDirect()
        {
            FltInterval horizon = new FltInterval(m_Solver.Horizon.Min, m_Solver.Horizon.Max);

            if (!m_Domain.Interval.Equals(horizon))
            {
                m_Domain.Union(horizon);

                base.UnboundDirect();
            }
        }
Пример #13
0
        public void Equals()
        {
            FltInterval i	= new FltInterval( -100, 100 );
            FltInterval a	= new FltInterval( -100, 100 );
            FltInterval b	= new FltInterval( -99, 100 );
            FltInterval c	= new FltInterval( -100, 99 );

            Assert.IsTrue( i.Equals( a ) );
            Assert.IsFalse( i.Equals( b ) );
            Assert.IsFalse( i.Equals( c ) );
        }
Пример #14
0
        public void MulToDiv()
        {
            for (int idx = 0; idx < 1000; ++idx)
            {
                FltInterval x  = FltInterval.Random(1E6);
                FltInterval y  = FltInterval.Random(1E6);
                FltInterval c1 = x * y;
                FltInterval c2 = c1 / y;

                Assert.IsTrue(c2.Contains(x));
            }
        }
Пример #15
0
        public override void Update()
        {
            double sum_min = 0;
            double sum_max = 0;

            for (int i = 0; i < VarList.Count; ++i)
            {
                FltInterval intv = VarList[i].Domain.Interval;

                sum_min += intv.Min;
                sum_max += intv.Max;
            }

            Var0.Intersect(sum_min, sum_max);

            for (int idx = 0; idx < VarList.Count; ++idx)
            {
                FltVar var = VarList[idx];

                double min = Var0.Min - (sum_max - var.Max);
                double max = Var0.Max - (sum_min - var.Min);

                if (min > var.Min || max < var.Max)
                {
                    sum_min -= var.Min;
                    sum_max -= var.Max;

                    var.Intersect(min, max);

                    if (var.Domain.IsEmpty())
                    {
                        break;
                    }

                    sum_min += var.Min;
                    sum_max += var.Max;

                    Var0.Intersect(sum_min, sum_max);

                    if (Var0.Domain.IsEmpty())
                    {
                        break;
                    }

                    idx = -1;
                }
            }
        }
Пример #16
0
        public void IntersectsWith()
        {
            FltInterval a0 = new FltInterval(-100, -51);
            FltInterval a  = new FltInterval(-100, -50);
            FltInterval b  = new FltInterval(-50, 50);
            FltInterval c  = new FltInterval(50, 100);
            FltInterval c0 = new FltInterval(51, 100);

            Assert.IsFalse(a0.IntersectsWith(b));
            Assert.IsFalse(b.IntersectsWith(a0));
            Assert.IsFalse(b.IntersectsWith(c0));
            Assert.IsFalse(c0.IntersectsWith(b));

            Assert.IsTrue(a.IntersectsWith(b));
            Assert.IsTrue(b.IntersectsWith(a));
            Assert.IsTrue(b.IntersectsWith(c));
            Assert.IsTrue(c.IntersectsWith(b));
        }
Пример #17
0
        public void Multiply()
        {
            FltInterval a = new FltInterval(-10, -5);
            FltInterval b = new FltInterval(-10, 5);
            FltInterval c = new FltInterval(-5, 10);
            FltInterval d = new FltInterval(5, 10);

            Assert.AreEqual(new FltInterval(25, 100), a * a);
            Assert.AreEqual(new FltInterval(-50, 100), a * b);
            Assert.AreEqual(new FltInterval(-100, 50), a * c);
            Assert.AreEqual(new FltInterval(-100, -25), a * d);

            Assert.AreEqual(new FltInterval(-50, 100), b * b);
            Assert.AreEqual(new FltInterval(-100, 50), b * c);
            Assert.AreEqual(new FltInterval(-100, 50), b * d);

            Assert.AreEqual(new FltInterval(-50, 100), c * c);
            Assert.AreEqual(new FltInterval(-50, 100), c * d);

            Assert.AreEqual(new FltInterval(25, 100), d * d);
        }
Пример #18
0
        public void Substraction()
        {
            FltInterval a	= new FltInterval( -10, 5 );
            FltInterval b	= new FltInterval( -5, 10 );

            Assert.AreEqual( new FltInterval( -20, 10 ), a - b );
        }
Пример #19
0
        public void Negate()
        {
            FltInterval a	= new FltInterval( -10, 5 );
            FltInterval b	= new FltInterval( -5, 10 );

            Assert.AreEqual( new FltInterval( -5, 10 ), -a );
            Assert.AreEqual( new FltInterval( -10, 5 ), -b );
        }
Пример #20
0
        public void Multiply()
        {
            FltInterval a	= new FltInterval( -10, -5 );
            FltInterval b	= new FltInterval( -10, 5 );
            FltInterval c	= new FltInterval( -5, 10 );
            FltInterval d	= new FltInterval( 5, 10 );

            Assert.AreEqual( new FltInterval( 25, 100 ), a * a );
            Assert.AreEqual( new FltInterval( -50, 100 ), a * b );
            Assert.AreEqual( new FltInterval( -100, 50 ), a * c );
            Assert.AreEqual( new FltInterval( -100, -25 ), a * d );

            Assert.AreEqual( new FltInterval( -50, 100 ), b * b );
            Assert.AreEqual( new FltInterval( -100, 50 ), b * c );
            Assert.AreEqual( new FltInterval( -100, 50 ), b * d );

            Assert.AreEqual( new FltInterval( -50, 100 ), c * c );
            Assert.AreEqual( new FltInterval( -50, 100 ), c * d );

            Assert.AreEqual( new FltInterval( 25, 100 ), d * d );
        }
Пример #21
0
 public FltVarMatrix(Solver solver, int rowCount, int colCount, FltInterval interval) :
     this(solver, rowCount, colCount, new FltDomain(interval))
 {
 }
Пример #22
0
 public void Union( FltInterval interval )
 {
     Update( m_Domain.Union( interval ) );
 }
Пример #23
0
        public override void UnboundDirect()
        {
            FltInterval horizon		= new FltInterval( m_Solver.Horizon.Min, m_Solver.Horizon.Max );

            if( !m_Domain.Interval.Equals( horizon ) )
            {
                m_Domain.Union( horizon );

                base.UnboundDirect();
            }
        }
Пример #24
0
 private void AssertEqual( FltDomain lhs, FltInterval[] rhs )
 {
     int index	= 0;
     foreach( FltInterval interval in lhs )
     {
         Assert.AreEqual( interval, rhs[ index++ ] );
     }
 }
Пример #25
0
 public void Difference( FltInterval interval )
 {
     Update( m_Domain.Difference( interval ) );
 }
Пример #26
0
 public FltVar( Solver solver, FltInterval interval, string name )
     : this(solver, new FltDomain( interval ), name)
 {
 }
Пример #27
0
 public void Intersect(FltInterval interval)
 {
     Update(m_Domain.Intersect(interval));
 }
Пример #28
0
 public FltVar(Solver solver, FltInterval interval, string name) :
     this(solver, new FltDomain(interval), name)
 {
 }
Пример #29
0
        public void Union()
        {
            FltInterval a	= new FltInterval( -100, 50 );
            FltInterval b	= new FltInterval( -50, 100 );

            FltInterval c	= a.Union( b );

            Assert.AreEqual( new FltInterval( -100, 100 ), c );
        }
Пример #30
0
 public void Intersect( FltInterval interval )
 {
     Update( m_Domain.Intersect( interval ) );
 }
Пример #31
0
 public void Union(FltInterval interval)
 {
     Update(m_Domain.Union(interval));
 }
Пример #32
0
 public void Difference(FltInterval interval)
 {
     Update(m_Domain.Difference(interval));
 }
Пример #33
0
        public void IntersectsWith()
        {
            FltInterval a0	= new FltInterval( -100, -51 );
            FltInterval a	= new FltInterval( -100, -50 );
            FltInterval b	= new FltInterval( -50, 50 );
            FltInterval c	= new FltInterval( 50, 100 );
            FltInterval c0	= new FltInterval( 51, 100 );

            Assert.IsFalse( a0.IntersectsWith( b ) );
            Assert.IsFalse( b.IntersectsWith( a0 ) );
            Assert.IsFalse( b.IntersectsWith( c0 ) );
            Assert.IsFalse( c0.IntersectsWith( b ) );

            Assert.IsTrue( a.IntersectsWith( b ) );
            Assert.IsTrue( b.IntersectsWith( a ) );
            Assert.IsTrue( b.IntersectsWith( c ) );
            Assert.IsTrue( c.IntersectsWith( b ) );
        }
Пример #34
0
 public FltVarMatrix( Solver solver, int rowCount, int colCount, FltInterval interval )
     : this(solver, rowCount, colCount, new FltDomain( interval ))
 {
 }