Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8ce4e0e

Browse files
committed
Add PyList tests
1 parent 657d674 commit 8ce4e0e

File tree

1 file changed

+130
-0
lines changed

1 file changed

+130
-0
lines changed

src/embed_tests/TestPyList.cs

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,136 @@ public void Dispose()
1919
PythonEngine.Shutdown();
2020
}
2121

22+
[Test]
23+
public void TestStringIsListType()
24+
{
25+
var s = new PyString("foo");
26+
Assert.False(PyList.IsListType(s));
27+
}
28+
29+
[Test]
30+
public void TestListIsListType()
31+
{
32+
var s = new PyList();
33+
Assert.True(PyList.IsListType(s));
34+
}
35+
36+
[Test]
37+
public void TestStringAsListType()
38+
{
39+
var i = new PyInt(5);
40+
PyList t = null;
41+
42+
var ex = Assert.Throws<PythonException>(() => t = PyList.AsList(i));
43+
44+
Assert.AreEqual("TypeError : 'int' object is not iterable", ex.Message);
45+
Assert.IsNull(t);
46+
}
47+
48+
[Test]
49+
public void TestListAsListType()
50+
{
51+
var l = new PyList();
52+
PyList t = PyList.AsList(l);
53+
54+
Assert.IsNotNull(t);
55+
Assert.IsInstanceOf(typeof(PyList), t);
56+
}
57+
58+
[Test]
59+
public void TestEmptyCtor()
60+
{
61+
var s = new PyList();
62+
63+
Assert.IsInstanceOf(typeof(PyList), s);
64+
Assert.AreEqual(0, s.Length());
65+
}
66+
67+
[Test]
68+
public void TestPyObjectArrayCtor()
69+
{
70+
var ai = new PyObject[] {new PyInt(3), new PyInt(2), new PyInt(1) };
71+
var s = new PyList(ai);
72+
73+
Assert.IsInstanceOf(typeof(PyList), s);
74+
Assert.AreEqual(3, s.Length());
75+
Assert.AreEqual("3", s[0].ToString());
76+
Assert.AreEqual("2", s[1].ToString());
77+
Assert.AreEqual("1", s[2].ToString());
78+
}
79+
80+
[Test]
81+
public void TestPyObjectCtor()
82+
{
83+
var a = new PyList();
84+
var s = new PyList(a);
85+
86+
Assert.IsInstanceOf(typeof(PyList), s);
87+
Assert.AreEqual(0, s.Length());
88+
}
89+
90+
[Test]
91+
public void TestBadPyObjectCtor()
92+
{
93+
var i = new PyInt(5);
94+
PyList t = null;
95+
96+
var ex = Assert.Throws<ArgumentException>(() => t = new PyList(i));
97+
98+
Assert.AreEqual("object is not a list", ex.Message);
99+
Assert.IsNull(t);
100+
}
101+
102+
[Test]
103+
public void TestAppend()
104+
{
105+
var ai = new PyObject[] { new PyInt(3), new PyInt(2), new PyInt(1) };
106+
var s = new PyList(ai);
107+
s.Append(new PyInt(4));
108+
109+
Assert.AreEqual(4, s.Length());
110+
Assert.AreEqual("4", s[3].ToString());
111+
}
112+
113+
[Test]
114+
public void TestInsert()
115+
{
116+
var ai = new PyObject[] { new PyInt(3), new PyInt(2), new PyInt(1) };
117+
var s = new PyList(ai);
118+
s.Insert(0, new PyInt(4));
119+
120+
Assert.AreEqual(4, s.Length());
121+
Assert.AreEqual("4", s[0].ToString());
122+
}
123+
124+
[Test]
125+
public void TestReverse()
126+
{
127+
var ai = new PyObject[] { new PyInt(3), new PyInt(1), new PyInt(2) };
128+
var s = new PyList(ai);
129+
130+
s.Reverse();
131+
132+
Assert.AreEqual(3, s.Length());
133+
Assert.AreEqual("2", s[0].ToString());
134+
Assert.AreEqual("1", s[1].ToString());
135+
Assert.AreEqual("3", s[2].ToString());
136+
}
137+
138+
[Test]
139+
public void TestSort()
140+
{
141+
var ai = new PyObject[] { new PyInt(3), new PyInt(1), new PyInt(2) };
142+
var s = new PyList(ai);
143+
144+
s.Sort();
145+
146+
Assert.AreEqual(3, s.Length());
147+
Assert.AreEqual("1", s[0].ToString());
148+
Assert.AreEqual("2", s[1].ToString());
149+
Assert.AreEqual("3", s[2].ToString());
150+
}
151+
22152
[Test]
23153
public void TestOnPyList()
24154
{

0 commit comments

Comments
 (0)