using System;using NUnit.Framework;using Python.Runtime;namespace Python.EmbeddingTest{public class TestPyString{[OneTimeSetUp]public void SetUp(){PythonEngine.Initialize();}[OneTimeTearDown]public void Dispose(){PythonEngine.Shutdown();}[Test]public void TestStringCtor(){const string expected = "foo";var actual = new PyString(expected);Assert.AreEqual(expected, actual.ToString());}[Test]public void TestEmptyStringCtor(){const string expected = "";var actual = new PyString(expected);Assert.AreEqual(expected, actual.ToString());}[Test][Ignore("Ambiguous behavior between PY2/PY3. Needs remapping")]public void TestPyObjectCtor(){const string expected = "Foo";var t = new PyString(expected);var actual = new PyString(t);Assert.AreEqual(expected, actual.ToString());}[Test]public void TestBadPyObjectCtor(){var t = new PyInt(5);PyString actual = null;var ex = Assert.Throws<ArgumentException>(() => actual = new PyString(t));StringAssert.StartsWith("object is not a string", ex.Message);Assert.IsNull(actual);}[Test]public void TestCtorBorrowed(){const string expected = "foo";var t = new PyString(expected);var actual = new PyString(t.Reference);Assert.AreEqual(expected, actual.ToString());}[Test][Ignore("Ambiguous behavior between PY2/PY3. Needs remapping")]public void IsStringTrue(){var t = new PyString("foo");Assert.True(PyString.IsStringType(t));}[Test]public void IsStringFalse(){var t = new PyInt(5);Assert.False(PyString.IsStringType(t));}[Test]public void TestUnicode(){const string expected = "foo\u00e9";PyObject actual = new PyString(expected);Assert.AreEqual(expected, actual.ToString());}[Test]public void TestUnicodeSurrogateToString(){var expected = "foo\ud83d\udc3c";var actual = PythonEngine.Eval("'foo\ud83d\udc3c'");Assert.AreEqual(4, actual.Length());Assert.AreEqual(expected, actual.ToString());}[Test]public void TestUnicodeSurrogate(){const string expected = "foo\ud83d\udc3c"; // "foo🐼"PyObject actual = new PyString(expected);// python treats "foo🐼" as 4 characters, dotnet as 5Assert.AreEqual(4, actual.Length());Assert.AreEqual(expected, actual.ToString());}[Test]public void CompareTo(){var a = new PyString("foo");Assert.AreEqual(0, a.CompareTo("foo"));Assert.AreEqual("foo".CompareTo("bar"), a.CompareTo("bar"));Assert.AreEqual("foo".CompareTo("foz"), a.CompareTo("foz"));}[Test]public void Equals(){var a = new PyString("foo");Assert.True(a.Equals("foo"));Assert.False(a.Equals("bar"));}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。