[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/filmor/pythonnet/drop-python2/src/embed_tests/TestPyFloat.cs [Back]  [Original]

using System;
using NUnit.Framework;
using Python.Runtime;

namespace Python.EmbeddingTest
{
    /// 
    /// PyFloat implementation isn't complete, thus tests aren't complete.
    /// 
    public class TestPyFloat
    {
        [OneTimeSetUp]
        public void SetUp()
        {
            PythonEngine.Initialize();
        }

        [OneTimeTearDown]
        public void Dispose()
        {
            PythonEngine.Shutdown();
        }

        [Test]
        public void IntPtrCtor()
        {
            var i = new PyFloat(1);
            Runtime.Runtime.XIncref(i.Handle);
            var ii = new PyFloat(i.Handle);
            Assert.AreEqual(i.Handle, ii.Handle);
        }

        [Test]
        public void FloatCtor()
        {
            const float a = 4.5F;
            var i = new PyFloat(a);
            Assert.True(PyFloat.IsFloatType(i));
            // Assert.Assert.AreEqual(i, a.ToInt32());
        }

        [Test]
        public void PyObjectCtorGood()
        {
            var i = new PyFloat(5);
            var a = new PyFloat(i);
            Assert.True(PyFloat.IsFloatType(a));
            // Assert.Assert.AreEqual(i, a.ToInt32());
        }

        [Test]
        public void PyObjectCtorBad()
        {
            var i = new PyString("Foo");
            PyFloat a = null;

            var ex = Assert.Throws(() => a = new PyFloat(i));

            StringAssert.StartsWith("object is not a float", ex.Message);
            Assert.IsNull(a);
        }

        [Test]
        public void DoubleCtor()
        {
            const double a = 4.5;
            var i = new PyFloat(a);
            Assert.True(PyFloat.IsFloatType(i));
            // Assert.Assert.AreEqual(i, a.ToInt32());
        }

        [Test]
        public void StringIntCtor()
        {
            const string a = "5";
            var i = new PyFloat(a);
            Assert.True(PyFloat.IsFloatType(i));
            // Assert.Assert.AreEqual(i, a.ToInt32());
        }

        [Test]
        public void StringDoubleCtor()
        {
            const string a = "4.5";
            var i = new PyFloat(a);
            Assert.True(PyFloat.IsFloatType(i));
            // Assert.Assert.AreEqual(i, a.ToInt32());
        }

        [Test]
        public void StringBadCtor()
        {
            const string i = "Foo";
            PyFloat a = null;

            var ex = Assert.Throws(() => a = new PyFloat(i));

            StringAssert.StartsWith("ValueError : could not convert string to float", ex.Message);
            Assert.IsNull(a);
        }

        [Test]
        public void IsFloatTrue()
        {
            const double a = 4.5;
            var i = new PyFloat(a);
            Assert.True(PyFloat.IsFloatType(i));
        }

        [Test]
        public void IsFloatFalse()
        {
            var i = new PyString("Foo");
            Assert.False(PyFloat.IsFloatType(i));
        }

        [Test]
        public void AsFloatGood()
        {
            const double a = 4.5;
            var i = new PyFloat(a);
            PyFloat s = PyFloat.AsFloat(i);

            Assert.True(PyFloat.IsFloatType(s));
            // Assert.Assert.AreEqual(i, a.ToInt32());
        }

        [Test]
        public void AsFloatBad()
        {
            var s = new PyString("Foo");
            PyFloat a = null;

            var ex = Assert.Throws(() => a = PyFloat.AsFloat(s));
            StringAssert.StartsWith("ValueError : could not convert string to float", ex.Message);
            Assert.IsNull(a);
        }
    }
}

Web Proxy Viewer  |  New URL  |  Original Page