public void IsSimpleObjectExplictCultureTest()
        {
            IFormatProvider   french = System.Globalization.CultureInfo.GetCultureInfo("fr-FR");
            PDFValueConverter converter;

            //Enumueration
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(Scryber.DrawingOrigin), out converter));
            Assert.AreEqual(Scryber.DrawingOrigin.BottomLeft, converter.Invoke("BottomLeft", typeof(Scryber.DrawingOrigin), french), "Enum failed");

            //Boolean
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(bool), out converter));
            Assert.AreEqual(true, converter.Invoke("true", typeof(bool), french), "Boolean failed");

            //Byte
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(byte), out converter));
            Assert.AreEqual((byte)2, converter.Invoke("2", typeof(byte), french), "Byte failed");

            //Char
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(char), out converter));
            Assert.AreEqual('c', converter.Invoke("c", typeof(char), french), "Char failed");

            //DateTime
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(DateTime), out converter));
            Assert.AreEqual(new DateTime(2014, 05, 25, 12, 11, 10), converter.Invoke("25 mai 2014 12:11:10", typeof(DateTime), french), "DateTime failed");

            //Decimal
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(decimal), out converter));
            Assert.AreEqual(-12.5M, converter.Invoke("-12,5", typeof(decimal), french), "Decimal failed");

            //Double
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(double), out converter));
            Assert.AreEqual(12.50, converter.Invoke("12,5", typeof(double), french), "Double failed");

            //Int16
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(short), out converter));
            Assert.AreEqual((short)12, converter.Invoke("12", typeof(short), french), "Short failed");

            //Int32
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(int), out converter));
            Assert.AreEqual(-12, converter.Invoke("-12", typeof(int), french), "Int32 failed");

            //Int64
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(long), out converter));
            Assert.AreEqual((long)12, converter.Invoke("12", typeof(long), french), "Long failed");

            //SByte
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(SByte), out converter));
            Assert.AreEqual((SByte)(-12), converter.Invoke("-12", typeof(sbyte), french), "SByte failed");

            //Float
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(float), out converter));
            Assert.AreEqual(12.4F, converter.Invoke("12,4", typeof(float), french), "Float failed");

            //String
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(string), out converter));
            Assert.AreEqual("value", converter.Invoke("value", typeof(string), french), "String failed");

            //UInt16
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(ushort), out converter));
            Assert.AreEqual((ushort)12, converter.Invoke("12", typeof(ushort), french), "UShort failed");

            //Int16
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(uint), out converter));
            Assert.AreEqual((uint)12, converter.Invoke("12", typeof(uint), french), "UInt32 failed");

            //Int16
            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(ulong), out converter));
            Assert.AreEqual((ulong)12, converter.Invoke("12", typeof(ulong), french), "UInt64 failed");

            //Guid
            string guidS = "{62261BCA-DEE5-4285-A406-8236BC8025FA}";
            Guid   guid  = new Guid(guidS);

            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(Guid), out converter));
            Assert.AreEqual(guid, converter.Invoke(guidS, typeof(Guid), french), "Guid failed");

            TimeSpan time  = new TimeSpan(234567);
            string   timeS = time.ToString();

            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(TimeSpan), out converter));
            Assert.AreEqual(time, converter.Invoke(timeS, typeof(TimeSpan), french), "TimeSpan failed");

            string url = "http://www.scryber.co.uk";
            Uri    uri = new Uri(url);

            Assert.IsTrue(ParserDefintionFactory.IsSimpleObjectType(typeof(Uri), out converter));
            Assert.AreEqual(uri, converter.Invoke(url, typeof(Uri), french), "URI failed");

            Fakes.ParserRootOne complex = new Fakes.ParserRootOne();
            Assert.IsFalse(ParserDefintionFactory.IsSimpleObjectType(complex.GetType(), out converter));
            Assert.IsNull(converter);
        }