Esempio n. 1
0
                public static AVal Join(AVal a, AVal b)
                {
                    AVal result = null;

                    if (a == Top || b == Top)
                    {
                        result = Top;
                    }
                    else if (a == Bottom)
                    {
                        result = b;
                    }
                    else if (b == Bottom)
                    {
                        result = a;
                    }
                    else if (a.lowerBound != null && b.lowerBound != null && a.lowerBound == b.lowerBound)
                    {
                        result = a;
                    }
                    else if (a == b)
                    {
                        result = a;    // or b...
                    }
                    else
                    {
                        result = Top;
                    }
                    return(result);
                }
Esempio n. 2
0
        public void MatchTest_Match()
        {
            var a = AVal.AVC("string1");
            var b = AVal.AVC("string1");

            Assert.IsTrue(AVal.Match(a, b));
        }
Esempio n. 3
0
            protected override bool AtMost(AbstractValue a, AbstractValue b)
            {
                AVal av = (AVal)a;
                AVal bv = (AVal)b;

                return(av.IsExposable || !bv.IsExposable);
            }
Esempio n. 4
0
                public static AVal Meet(AVal a, AVal b)
                {
                    AVal result = null;

                    if (a == Bottom || b == Bottom)
                    {
                        result = Bottom;
                    }
                    else if (a == Top)
                    {
                        result = b;
                    }
                    else if (b == Top)
                    {
                        result = a;
                    }
                    else if (a == b)
                    {
                        result = a;    // or b...
                    }
                    else
                    {
                        result = Bottom;
                    }
                    return(result);
                }
Esempio n. 5
0
            protected override bool AtMost(AbstractValue a, AbstractValue b)
            {
                AVal av = (AVal)a;
                AVal bv = (AVal)b;

                return(AVal.Join(av, bv) == bv);
            }
Esempio n. 6
0
        public void AMF_EncodeNamedNumberTest()
        {
            AVal   name = AVal.AVC("name");
            double val  = -2.3456; // 0xC0 02 C3 C9 EE CB FB 16

            byte[] buf = new byte[100];
            int    enc = 0, pend = buf.Length;
            int    len = 2 + 4 + 1 + 8; // "name".len + "name" + AMF_NUMBER + 8

            enc = AMF.AMF_EncodeNamedNumber(buf, enc, pend, name, val);
            Assert.AreEqual(len, enc);
            Assert.AreEqual(0x00, buf[0]);
            Assert.AreEqual(0x04, buf[1]);
            Assert.AreEqual('n', buf[2]);
            Assert.AreEqual('a', buf[3]);
            Assert.AreEqual('m', buf[4]);
            Assert.AreEqual('e', buf[5]);
            Assert.AreEqual((byte)AMFDataType.AMF_NUMBER, buf[6]);
            Assert.AreEqual(0xC0, buf[7]);
            Assert.AreEqual(0x02, buf[8]);
            Assert.AreEqual(0xC3, buf[9]);
            Assert.AreEqual(0xC9, buf[10]);
            Assert.AreEqual(0xEE, buf[11]);
            Assert.AreEqual(0xCB, buf[12]);
            Assert.AreEqual(0xFB, buf[13]);
            Assert.AreEqual(0x16, buf[14]);
        }
Esempio n. 7
0
        public void AMF_EncodeNamedStringTest2()
        {
            AVal name = AVal.AVC("name"), val = AVal.AVC("val");

            byte[] buf = new byte[100];
            int    offset = 20;
            int    enc = offset, pend = buf.Length;
            int    len = 2 + 4 + 1 + 2 + 3; // "name".len + "name" + AMF_STRING + "val".len + "val"

            enc = AMF.AMF_EncodeNamedString(buf, enc, pend, name, val);
            Assert.AreEqual(len + offset, enc);
            Assert.AreEqual(0x00, buf[0 + offset]);
            Assert.AreEqual(0x04, buf[1 + offset]);
            Assert.AreEqual('n', buf[2 + offset]);
            Assert.AreEqual('a', buf[3 + offset]);
            Assert.AreEqual('m', buf[4 + offset]);
            Assert.AreEqual('e', buf[5 + offset]);
            Assert.AreEqual((byte)AMFDataType.AMF_STRING, buf[6 + offset]);
            Assert.AreEqual(0x00, buf[7 + offset]);
            Assert.AreEqual(0x03, buf[8 + offset]);
            Assert.AreEqual('v', buf[9 + offset]);
            Assert.AreEqual('a', buf[10 + offset]);
            Assert.AreEqual('l', buf[11 + offset]);
            Assert.AreEqual(0x00, buf[12 + offset]);
        }
Esempio n. 8
0
        public void MatchTest_Unmatch()
        {
            var a = AVal.AVC("string1");
            var b = AVal.AVC("string2");

            Assert.IsFalse(AVal.Match(a, b));
        }
 public static AVal Meet(AVal a, AVal b) {
   AVal result = null;
   if (a == Bottom || b == Bottom) result = Bottom;
   else if (a == Top) result = b;
   else if (b == Top) result = a;
   else if (a == b) result = a; // or b...
   else result = Bottom;
   return result;
 }
 public static AVal Join(AVal a, AVal b) {
   AVal result = null;
   if (a == Top || b == Top) result = Top;
   else if (a == Bottom) result = b;
   else if (b == Bottom) result = a;
   else if (a.lowerBound != null && b.lowerBound != null && a.lowerBound == b.lowerBound) result = a;
   else if (a == b) result = a; // or b...
   else result = Top;
   return result;
 }
Esempio n. 11
0
        public void AMF_EncodeStringTest2()
        {
            AVal app = AVal.AVC("appp");

            byte[] buf = new byte[4];
            int    enc = 0, pend = buf.Length;

            enc = AMF.AMF_EncodeString(buf, enc, pend, app);
            Assert.AreEqual(0, enc);
        }
Esempio n. 12
0
            public bool set(string key, Type filter, AVal aval, MouseState.Flags ifType = MouseState.Flags.LMR)
            {
                if (!args[idx].Eq(key))
                {
                    return(false);
                }
                LSender.Send(this, $"Found '{key}' key in {idx} position.", Message.Level.Debug);

                MouseState.Flags type;
                if (ifType != MouseState.Flags.None)
                {
                    type = MouseState.Extract(args[++idx]);
                    LSender.Send(this, $"type = {type} by {idx}", Message.Level.Debug);
                }
                else
                {
                    type = MouseState.Flags.None;
                }

                string val;

                if (aval != null)
                {
                    val = args[++idx];
                    LSender.Send(this, $"value = {val} by {idx}", Message.Level.Debug);
                }
                else
                {
                    val = null;
                }

                Guid g = filter.GUID;

                if (Filters[g] == null)
                {
                    LSender.Send(this, $"Filter '{g}' is not registered.", Message.Level.Debug);
                    return(true);
                }
                Filters[g].Activated = true;

                aval?.Invoke(Filters[g], val);

                if (ifType == MouseState.Flags.None)
                {
                    return(true);
                }

                if ((ifType & type) == 0)
                {
                    throw new ArgumentException($"Incorrect Flags {type} -> {ifType}");
                }

                Filters[g].Handler = type;
                return(true);
            }
Esempio n. 13
0
        /// <summary>
        /// To configure data via arguments list.
        /// </summary>
        /// <param name="args"></param>
        public void configure(string[] args)
        {
            if (args == null)
            {
                throw new ArgumentNullException();
            }

            ArgsHelper h = new ArgsHelper(Filters);

            h.args = args;

            AVal aic = (IMouseListener l, string s) =>
            {
                var v = s.DValues(';');
                l.Value = v[0];
                l.Data  = new InterruptedClickFilter.TData()
                {
                    deltaMin = (uint)v[1], deltaMax = (uint)v[2]
                };
            };

            AVal amc = (IMouseListener l, string s) =>
            {
                l.Data = new MixedClicksFilter.TData()
                {
                    onlyDownCodes = s.DValue() != 0
                };
            };

            AVal adc = (IMouseListener l, string s) =>
            {
                l.Value = s.DValue();
            };

            AVal ahs = (IMouseListener l, string s) =>
            {
                var v = s.DValues(';');
                l.Data = new HyperactiveScrollFilter.TData()
                {
                    capacity = (int)v[0], limit = (uint)v[1]
                };
            };

            for (h.idx = 0; h.idx < args.Length; ++h.idx)
            {
                if (!h.set("-InterruptedClick", typeof(InterruptedClickFilter), aic) &&
                    !h.set("-MixedClicks", typeof(MixedClicksFilter), amc) &&
                    !h.set("-DoubleClicks", typeof(DoubleClicksFilter), adc) &&
                    !h.set("-HyperactiveScroll", typeof(HyperactiveScrollFilter), ahs, MouseState.Flags.None))
                {
                    throw new ArgumentException($"Incorrect arguments: {args[h.idx]} -> {String.Join(" ", args)}");
                }
            }
        }
Esempio n. 14
0
        public void RTMP_ParseURLTest_example()
        {
            AVal host, app, playpath;
            int  protocol, port;
            var  res = RTMP.RTMP_ParseURL(EXAMPLE_URL, out protocol, out host, out port, out playpath, out app);

            Assert.IsTrue(res);
            Assert.AreEqual(RTMP.RTMP_PROTOCOL_RTMP, protocol);
            Assert.IsTrue(AVal.Match(AVal.AVC("example.com"), host), "actual:" + host.to_s());
            Assert.AreEqual(41935, port);
            Assert.IsTrue(AVal.Match(AVal.AVC("plypath"), playpath), "actual:" + playpath);
            Assert.IsTrue(AVal.Match(AVal.AVC("app"), app), "actual:" + app);
        }
Esempio n. 15
0
        public void AMF_EncodeStringTest()
        {
            AVal app = AVal.AVC("app");

            byte[] buf = new byte[50];
            int    output = 0, pend = buf.Length;

            output = AMF.AMF_EncodeString(buf, output, pend, app);
            Assert.AreEqual(6, output);
            Assert.AreEqual((byte)AMFDataType.AMF_STRING, buf[0]);
            Assert.AreEqual(0, buf[1]);
            Assert.AreEqual(3, buf[2]);
            Assert.AreEqual('a', buf[3]);
            Assert.AreEqual('p', buf[4]);
            Assert.AreEqual('p', buf[5]);
        }
Esempio n. 16
0
        public void AMF_DecodeStringTest()
        {
            var  buf = new byte[100];
            AVal str = AVal.AVC("foobar");

            AMF.AMF_EncodeString(buf, 0, buf.Length, str);
            AVal actual;

            AMF.AMF_DecodeString(buf, 1, out actual); // Skip AMFDatatype flag
            Assert.AreEqual(6, actual.av_len);
            Assert.AreEqual('f', actual.av_val[0]);
            Assert.AreEqual('o', actual.av_val[1]);
            Assert.AreEqual('o', actual.av_val[2]);
            Assert.AreEqual('b', actual.av_val[3]);
            Assert.AreEqual('a', actual.av_val[4]);
            Assert.AreEqual('r', actual.av_val[5]);
        }
Esempio n. 17
0
        public void AMF_EncodeNamedBooleanTest()
        {
            AVal name = AVal.AVC("name");

            byte[] buf = new byte[100];
            int    enc = 0, pend = buf.Length;
            int    len = 2 + 4 + 1 + 1; // "name".len + "name" + AMF_NUMBER + 8

            enc = AMF.AMF_EncodeNamedBoolean(buf, enc, pend, name, true);
            Assert.AreEqual(len, enc);
            Assert.AreEqual(0x00, buf[0]);
            Assert.AreEqual(0x04, buf[1]);
            Assert.AreEqual('n', buf[2]);
            Assert.AreEqual('a', buf[3]);
            Assert.AreEqual('m', buf[4]);
            Assert.AreEqual('e', buf[5]);
            Assert.AreEqual((byte)AMFDataType.AMF_BOOLEAN, buf[6]);
            Assert.AreEqual(0x01, buf[7]);
        }
Esempio n. 18
0
        public void AMF_EncodeNamedStringTest()
        {
            AVal name = AVal.AVC("name"), val = AVal.AVC("val");

            byte[] buf = new byte[100];
            int    enc = 0, pend = buf.Length;
            int    len = 2 + 4 + 1 + 2 + 3; // "name".len + "name" + AMF_STRING + "val".len + "val"

            enc = AMF.AMF_EncodeNamedString(buf, enc, pend, name, val);
            Assert.AreEqual(len, enc);
            Assert.AreEqual(0x00, buf[0]);
            Assert.AreEqual(0x04, buf[1]);
            Assert.AreEqual('n', buf[2]);
            Assert.AreEqual('a', buf[3]);
            Assert.AreEqual('m', buf[4]);
            Assert.AreEqual('e', buf[5]);
            Assert.AreEqual((byte)AMFDataType.AMF_STRING, buf[6]);
            Assert.AreEqual(0x00, buf[7]);
            Assert.AreEqual(0x03, buf[8]);
            Assert.AreEqual('v', buf[9]);
            Assert.AreEqual('a', buf[10]);
            Assert.AreEqual('l', buf[11]);
            Assert.AreEqual(0x00, buf[12]);
        }
Esempio n. 19
0
 public static AVal Meet(AVal a, AVal b) {
   bool nonnull = a.IsNonNull || b.IsNonNull;
   return AVal.For(nonnull);
 }
Esempio n. 20
0
 public override MathematicalLattice.Element NontrivialMeet(MathematicalLattice.Element a, MathematicalLattice.Element b)
 {
     return(AVal.Meet((AVal)a, (AVal)b));
 }
Esempio n. 21
0
 public override AbstractValue NontrivialJoin(AbstractValue a, AbstractValue b)
 {
     return(AVal.Join((AVal)a, (AVal)b));
 }
 public static AVal Join(AVal a, AVal b)
 {
     bool consistent = a.IsExposable && b.IsExposable;
     return AVal.For(consistent);
 }
Esempio n. 23
0
                public static AVal Meet(AVal a, AVal b)
                {
                    bool consistent = a.IsExposable || b.IsExposable;

                    return(AVal.For(consistent));
                }
Esempio n. 24
0
                public static AVal Join(AVal a, AVal b)
                {
                    bool consistent = a.IsExposable && b.IsExposable;

                    return(AVal.For(consistent));
                }
 public static AVal Meet(AVal a, AVal b)
 {
     bool consistent = a.IsExposable || b.IsExposable;
     return AVal.For(consistent);
 }
 public static AVal Join(AVal a, AVal b) {
   bool unassigned = a.Unassigned && b.Unassigned;
   bool assigned = a.Assigned && b.Assigned;
   return AVal.For(unassigned, assigned, Delay.Join(a.Delay, b.Delay));
 }
Esempio n. 27
0
        public void MatchTest_Empty()
        {
            AVal a = AVal.AVC(string.Empty), b = AVal.AVC(string.Empty);

            Assert.IsTrue(AVal.Match(a, b));
        }
 public static AVal Meet(AVal a, AVal b) {
   bool unassigned = a.Unassigned || b.Unassigned;
   bool assigned = a.Assigned || b.Assigned;
   return AVal.For(unassigned, assigned, Delay.Meet(a.Delay, b.Delay));
 }
Esempio n. 29
0
 public static AVal Join(AVal a, AVal b) {
   bool nonnull = a.IsNonNull && b.IsNonNull;
   return AVal.For(nonnull);
 }