GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — pythonnet/src/embed_tests/TestPyString.cs at master · pythonnet/pythonnet Expand file tree/ Copy pathTestPyString.csMore file actions 121 lines (99 loc) · 3.22 KB / Copy pathTestPyString.csFile metadata and controls121 lines (99 loc) · 3.22 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 using System; using NUnit.Framework; using Python.Runtime; namespace Python.EmbeddingTest { public class TestPyString { [Test] public void TestStringCtor() { const string expected = "foo"; var actual = new PyString(expected); Assert.That(actual.ToString(), Is.EqualTo(expected)); } [Test] public void TestEmptyStringCtor() { const string expected = ""; var actual = new PyString(expected); Assert.That(actual.ToString(), Is.EqualTo(expected)); } [Test] public void TestPyObjectCtor() { const string expected = "Foo"; var t = new PyString(expected); var actual = new PyString(t); Assert.That(actual.ToString(), Is.EqualTo(expected)); } [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.That(actual.ToString(), Is.EqualTo(expected)); } [Test] 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.That(actual.ToString(), Is.EqualTo(expected)); } [Test] public void TestUnicodeSurrogateToString() { var expected = "foo\ud83d\udc3c"; var actual = PythonEngine.Eval("'foo\ud83d\udc3c'"); Assert.That(actual.Length(), Is.EqualTo(4)); Assert.That(actual.ToString(), Is.EqualTo(expected)); } [Test] public void TestUnicodeSurrogate() { const string expected = "foo\ud83d\udc3c"; // "foo🐼" PyObject actual = new PyString(expected); // python treats "foo🐼" as 4 characters, dotnet as 5 Assert.That(actual.Length(), Is.EqualTo(4)); Assert.That(actual.ToString(), Is.EqualTo(expected)); } [Test] public void CompareTo() { var a = new PyString("foo"); Assert.That(a.CompareTo("foo"), Is.EqualTo(0)); Assert.That(a.CompareTo("bar"), Is.EqualTo("foo".CompareTo("bar"))); Assert.That(a.CompareTo("foz"), Is.EqualTo("foo".CompareTo("foz"))); } [Test] public void Equals() { var a = new PyString("foo"); Assert.True(a.Equals("foo")); Assert.False(a.Equals("bar")); } } } |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |