Esempio n. 1
0
        public void ErlParserTest()
        {
            var tests = new Dictionary <string, IErlObject>
            {
                { "<<1,2,3>>", new ErlBinary(new byte[] { 1, 2, 3 }) },
                { "<<>>", new ErlBinary(new byte[] {}) },
                { "<<\"abc\">>", new ErlBinary(new byte[] { (byte)'a', (byte)'b', (byte)'c' }) },
                { "<<\"\">>", new ErlBinary(new byte[] {}) },
            };

            foreach (var t in tests)
            {
                try
                {
                    ErlObject.Parse(t.Key, t.Value);
                    Aver.Pass();
                }
                catch (Exception)
                {
                    Aver.Fail("Error parsing: {0} (test: {1})".Args(t.Key, t.ToString()));
                }

                var res = ErlObject.Parse(t.Key, t.Value);
                Aver.AreEqual(t.Value, res,
                              "Unexpected value: {0} (expected: {1})".Args(res, t.Value));
            }
        }
Esempio n. 2
0
        public void ErlParserMFATest()
        {
            var tests = new Dictionary <string, Tuple <string, string, ErlList, object[]> >
            {
                { "a:b()", Tuple.Create("a", "b", new ErlList(), (object[])null) },
                { "a:b().", Tuple.Create("a", "b", new ErlList(), (object[])null) },
                { "a:b()\t      .", Tuple.Create("a", "b", new ErlList(), (object[])null) },
                { "a:b()       ", Tuple.Create("a", "b", new ErlList(), (object[])null) },
                { "a:b()\n.", Tuple.Create("a", "b", new ErlList(), (object[])null) },
                { "a:b(%comment\n).", Tuple.Create("a", "b", new ErlList(), (object[])null) },
                { "a:b().%comment", Tuple.Create("a", "b", new ErlList(), (object[])null) },
                { "a:b()\t", Tuple.Create("a", "b", new ErlList(), (object[])null) },
                { "a:b(10)", Tuple.Create("a", "b", new ErlList(10), (object[])null) },
                { "a:b(10).", Tuple.Create("a", "b", new ErlList(10), (object[])null) },
                { "aa:bb(10)", Tuple.Create("aa", "bb", new ErlList(10), (object[])null) },
                { "a:b(10,20)", Tuple.Create("a", "b", new ErlList(10, 20), (object[])null) },
                { "a:b(~w)", Tuple.Create("a", "b", new ErlList(10), new object[] { 10 }) },
                { "a:b(~w).", Tuple.Create("a", "b", new ErlList(10), new object[] { 10 }) },
                {
                    "a:b(~f,~d).",
                    Tuple.Create("a", "b", new ErlList(10d, 20), new object[] { 10d, 20 })
                },
                {
                    "a:b([~w,~w],30)",
                    Tuple.Create("a", "b", new ErlList(new ErlList(10, 20), 30),
                                 new object[] { 10, 20 })
                },
                {
                    "a:b([~w,~w],~w)",
                    Tuple.Create("a", "b", new ErlList(new ErlList(10, 20), 30),
                                 new object[] { 10, 20, 30 })
                },
            };

            foreach (var t in tests)
            {
                try
                {
                    ErlObject.ParseMFA(t.Key, t.Value.Item4);
                    Aver.Pass();
                }
                catch (Exception)
                {
                    Aver.Fail("Error parsing: {0} (test: {1})".Args(t.Key, t.ToString()));
                }

                var res = ErlObject.ParseMFA(t.Key, t.Value.Item4);
                Aver.AreEqual(t.Value.Item1, res.Item1.Value,
                              "Unexpected module value: {0} (expected: {1})".Args(
                                  res.Item1.Value, t.Value.Item1));
                Aver.AreEqual(t.Value.Item2, res.Item2.Value,
                              "Unexpected function value: {0} (expected: {1})".Args(
                                  res.Item2.Value, t.Value.Item2));
                Aver.AreObjectsEqual(t.Value.Item3, res.Item3,
                                     "Unexpected args value: {0} (expected: {1})".Args(res.Item3,
                                                                                       t.Value.Item3));
            }
        }
Esempio n. 3
0
 private void doesNotThrow(Action a)
 {
     try
     {
         a();
         Aver.Pass();
     }
     catch (Exception error)
     {
         Aver.Fail("Exception {0} was thrown: {1}".Args(error.GetType().ToString(), error.Message));
     }
 }
Esempio n. 4
0
        public void OrderedRegistry_Parallel()
        {
            var reg = new OrderedRegistry <OrderedClazz>();

            var CNT = 250000;

            Parallel.For(0, CNT, (i) =>
            {
                reg.Register(new OrderedClazz("Name_{0}".Args(i % 128), i % 789, i));
                var item = reg["Name_{0}".Args(i % 128)];//it may be null
                reg.Unregister("Name_{0}".Args((i - 2) % 128));
            });

            Aver.Pass("No exceptions thrown during multithreaded parallel work");
        }
        public void AsJSONConfig()
        {
            Aver.AreEqual(23, "{value: 23}".AsJSONConfig().AttrByName("value").ValueAsInt());
            Aver.AreEqual(223, "{nfx: {value: 223}}".AsJSONConfig().AttrByName("value").ValueAsInt());
            Aver.IsNull("{ bad }".AsJSONConfig());

            try
            {
                "bad".AsJSONConfig(handling: ConvertErrorHandling.Throw);
                Aver.Fail("No exception");
            }
            catch (Exception e) when(!(e is AvermentException))
            {
                Aver.Pass("Got exception as expected");
            }
        }
        public void AsLaconicConfig()
        {
            Aver.AreEqual(23, "value=23".AsLaconicConfig().AttrByName("value").ValueAsInt());
            Aver.AreEqual(223, "nfx{value=223}".AsLaconicConfig().AttrByName("value").ValueAsInt());
            Aver.IsNull("nfx{value 223}".AsLaconicConfig());

            try
            {
                "nfx".AsLaconicConfig(handling: ConvertErrorHandling.Throw);
                Aver.Fail("No exception");
            }
            catch (Exception e) when(!(e is AvermentException))
            {
                Aver.Pass("Got exception as expected");
            }
        }
        public void GDID()
        {
            object obj = new GDID(3, 4, 5);

            Aver.AreObjectsEqual(obj, obj.AsGDID());
            Aver.AreObjectsEqual(obj, obj.AsGDID(new GDID(2, 3, 4)));


            Aver.AreObjectsEqual(obj, "3:4:5".AsGDID(new GDID(2, 3, 4)));
            Aver.AreEqual(new GDID(2, 3, 4), "3rewtfef:4:5".AsGDID(new GDID(2, 3, 4)));

            try
            {
                "3rewtfef:4:5".AsGDID(new GDID(2, 3, 4), handling: ConvertErrorHandling.Throw);
                Aver.Fail("No execpetion");
            }
            catch
            {
                Aver.Pass("");
            }
        }
Esempio n. 8
0
        public void GDID()
        {
            object obj = new GDID(3, 4, 5);

            Aver.AreObjectsEqual(obj, obj.AsGDID());
            Aver.AreObjectsEqual(obj, obj.AsGDID(new GDID(2, 3, 4)));


            Aver.AreObjectsEqual(obj, "3:4:5".AsGDID(new GDID(2, 3, 4)));
            Aver.AreEqual(new GDID(2, 3, 4), "3rewtfef:4:5".AsGDID(new GDID(2, 3, 4)));

            try
            {
                "3rewtfef:4:5".AsGDID(new GDID(2, 3, 4), handling: ConvertErrorHandling.Throw);
                Aver.Fail(Constants.ERR_NOT_THROWN);
            }
            catch
            {
                Aver.Pass("");
            }
        }
        public void GDIDSymbol()
        {
            object obj = new GDIDSymbol(new GDID(3, 4, 5), "ABC");

            Aver.AreObjectsEqual(obj, obj.AsGDIDSymbol());
            Aver.AreObjectsEqual(obj, obj.AsGDIDSymbol(new GDIDSymbol(new GDID(23, 14, 15), "ABC")));


            var link = new ELink(new GDID(4, 12, 8721));


            Aver.AreEqual(link.AsGDIDSymbol, link.Link.AsGDIDSymbol());
            Aver.AreEqual(link.AsGDIDSymbol, "3rewtfef:4:5".AsGDIDSymbol(link.AsGDIDSymbol()));

            try
            {
                "3rewtfef:4:5".AsGDIDSymbol(link.AsGDIDSymbol, handling: ConvertErrorHandling.Throw);
                Aver.Fail("No excepetion");
            }
            catch
            {
                Aver.Pass();
            }
        }
Esempio n. 10
0
 //[Run("category", "name", -1, "")]
 public void Empty()
 {
     Aver.Pass();
 }