Thread: [cgkit-commits] SF.net SVN: cgkit: [21] maya/trunk/maya_wrapper/maya/unittest/sdk_unittests
Brought to you by:
mbaas
From: <mb...@us...> - 2006-07-10 16:59:03
|
Revision: 21 Author: mbaas Date: 2006-07-10 09:58:54 -0700 (Mon, 10 Jul 2006) ViewCVS: http://svn.sourceforge.net/cgkit/?rev=21&view=rev Log Message: ----------- Added a unit test for the MObjectArray class Modified Paths: -------------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py Added Paths: ----------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py 2006-07-10 16:58:54 UTC (rev 21) @@ -0,0 +1,143 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MObjectArray test + +import unittest +from maya.api import * + +class TestMObjectArray(unittest.TestCase): + """ + The tests are complete. + """ + + def testConstructors(self): + """Test the constructors. + """ + # Standard constructor + a = MObjectArray() + self.assertEqual(a.length(), 0) + + # Provide an initial size + a = MObjectArray(8) + self.assertEqual(a.length(), 8) + + # Provide an initial size and default initializer + obj = MObject() + a = MObjectArray(6, obj) + self.assertEqual(a.length(), 6) + + # Provide a list of MObjects + a = MObjectArray([MObject(), MObject()]) + self.assertEqual(a.length(), 2) + + # Make a copy + b = MObjectArray(a) + self.assertEqual(a.length(), 2) + + def testIndexOperator(self): + """Test the index operator. + """ + + a = MObjectArray(3) + obj = a[0] + a[0] = obj + + def testSet(self): + """Test the set() method. + """ + + a = MObjectArray(3) + a.set(MObject(), 1) + + + def testLength(self): + """Test the length()/setLength() methods. + """ + + a = MObjectArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + a.setLength(3) + self.assertEqual(a.length(), 3) + + def testRemove(self): + """Test the remove() method. + """ + + a = MObjectArray(5) + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the insert() method. + """ + + a = MObjectArray(4) + + a.insert(MObject(), 1) + self.assertEqual(a.length(), 5) + + def testAppend(self): + """Test the append() method. + """ + + a = MObjectArray(4) + + a.append(MObject()) + self.assertEqual(a.length(), 5) + + def testClear(self): + """Test the clear() method. + """ + + a = MObjectArray(4) + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + + def testGet(self): + """Test the get() method. + """ + + a = MObjectArray(3) + + lst = a.get() + self.assertEqual(len(lst), 3) + + lst = [] + a.get(lst) + self.assertEqual(len(lst), 3) + + def testSizeIncrement(self): + """Test the sizeIncrement()/setSizeIncrement() methods. + """ + + a = MObjectArray() + a.setSizeIncrement(17) + i = a.sizeIncrement() + self.assertEqual(i, 17) + Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-07-10 14:46:34 UTC (rev 20) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-07-10 16:58:54 UTC (rev 21) @@ -24,6 +24,7 @@ from MFn import TestMFn from MFnBase import TestMFnBase from MImage import TestMImage +from MObjectArray import TestMObjectArray from MStatus import TestMStatus from MString import TestMString from MPoint import TestMPoint This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-07-14 14:45:26
|
Revision: 22 Author: mbaas Date: 2006-07-14 07:45:16 -0700 (Fri, 14 Jul 2006) ViewCVS: http://svn.sourceforge.net/cgkit/?rev=22&view=rev Log Message: ----------- Added a test for the MUserEventMessage class Modified Paths: -------------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py Added Paths: ----------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUserEventMessage.py Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUserEventMessage.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUserEventMessage.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUserEventMessage.py 2006-07-14 14:45:16 UTC (rev 22) @@ -0,0 +1,60 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MUserEventMessage test + +import unittest +from maya.api import * + +class TestMUserEventMessage(unittest.TestCase): + """ + + """ + + def testEvent(self): + """ + """ + + self.callbackargs = [] + + eventname = "unittestevent" + if not MUserEventMessage.isUserEvent(eventname): + if not MUserEventMessage.registerUserEvent(eventname): + self.fail("Could not register user event '%s'"%eventname) + + MUserEventMessage.setUserEventSize(eventname, 4) + id = MUserEventMessage.addUserEventCallback(eventname, self.callback, 42, None) + # Send the string "test" + MUserEventMessage.postUserEvent(eventname, "test") + # Send the string "abcdef" (the callback should only receive "abcd") + MUserEventMessage.postUserEvent(eventname, "abcdef") + # Send no value + MUserEventMessage.postUserEvent(eventname) + MUserEventMessage.removeCallback(id) + + MUserEventMessage.deregisterUserEvent(eventname) + self.failIf(pyDataLut().has_key(id), "Callback was not properly removed") + + self.assertEqual(self.callbackargs, ["test", "abcd", 42]) + + def callback(self, data): + self.callbackargs.append(data) Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-07-10 16:58:54 UTC (rev 21) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-07-14 14:45:16 UTC (rev 22) @@ -29,4 +29,5 @@ from MString import TestMString from MPoint import TestMPoint from MPointArray import TestMPointArray +from MUserEventMessage import TestMUserEventMessage from MVector import TestMVector This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-07-27 20:18:31
|
Revision: 25 Author: mbaas Date: 2006-07-27 13:18:15 -0700 (Thu, 27 Jul 2006) ViewCVS: http://svn.sourceforge.net/cgkit/?rev=25&view=rev Log Message: ----------- Added two more unit tests Modified Paths: -------------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUserEventMessage.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py Added Paths: ----------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDGMessage.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MTime.py Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDGMessage.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDGMessage.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDGMessage.py 2006-07-27 20:18:15 UTC (rev 25) @@ -0,0 +1,125 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MDGMessage test + +import unittest +from maya import mel +from maya.api import * + +class TestMDGMessage(unittest.TestCase): + """Test the MDGMessage class. + """ + + def testAddTimeChange(self): + """Test the MDGMessage timeChange callback. + """ + + mel.currentTime(1) + + self.callbackargs = [] + + id = MDGMessage.addTimeChangeCallback(self.timeCallback, 42) + # Trigger the callback + mel.currentTime(2) + + MDGMessage.removeCallback(id) + mel.currentTime(1) + + self.failIf(pyDataLut().has_key(id), "Callback was not properly removed") + self.assertEqual(self.callbackargs, [(MTime(2, MTime.uiUnit()), 42)]) + + def testAddForceUpdate(self): + """Test the MDGMessage forceUpdate callback. + """ + + mel.currentTime(1) + + self.callbackargs = [] + + id = MDGMessage.addForceUpdateCallback(self.timeCallback, 42) + # Trigger the callback + mel.currentTime(2) + + MDGMessage.removeCallback(id) + mel.currentTime(1) + + self.failIf(pyDataLut().has_key(id), "Callback was not properly removed") + self.assertEqual(self.callbackargs, [(MTime(2, MTime.uiUnit()), 42)]) + + def timeCallback(self, time, data): + self.callbackargs.append((time,data)) + + + def testNodeCallbacks(self): + """Test the MDGMessage node callback. + """ + + self.addedargs = [] + self.removedargs = [] + self.connectionargs = [] + + id1 = MDGMessage.addNodeAddedCallback(self.nodeAddedCallback) + id2 = MDGMessage.addNodeRemovedCallback(self.nodeRemovedCallback, "dependNode") + id3 = MDGMessage.addConnectionCallback(self.connectionCallback) + + # Trigger the callbacks + s = mel.sphere() + mel.delete(s) + + MDGMessage.removeCallback(id1) + MDGMessage.removeCallback(id2) + MDGMessage.removeCallback(id3) + + self.failIf(pyDataLut().has_key(id1), "Callback was not properly removed") + self.failIf(pyDataLut().has_key(id2), "Callback was not properly removed") + self.failIf(len(self.addedargs)<3, "Not enough callback invocations") + self.assertEqual(len(self.removedargs), len(self.addedargs)) + # Check if every node in 'addedargs' has a corresponding node in + # 'removedargs'... + for node1,data1 in self.addedargs: + self.assertEqual(type(node1), MObject) + n = 0 + for node2,data2 in self.removedargs: + if node1==node2: + n += 1 + self.assertEqual(n, 1) + + # Check if the args to the connectionCallback have the right type + self.failIf(len(self.connectionargs)==0, "Not enough connection callback invocations") + for srcPlug, destPlug, made, data in self.connectionargs: + self.assertEqual(type(srcPlug), MPlug) + self.assertEqual(type(destPlug), MPlug) + self.assertEqual(type(made), bool) + + + + def nodeAddedCallback(self, node, data): + self.addedargs.append((node,data)) + + def nodeRemovedCallback(self, node, data): + self.removedargs.append((node,data)) + + def connectionCallback(self, srcPlug, destPlug, made, data): +# print "connection:",srcPlug,destPlug,made,data + self.connectionargs.append((srcPlug, destPlug, made, data)) + Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MTime.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MTime.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MTime.py 2006-07-27 20:18:15 UTC (rev 25) @@ -0,0 +1,211 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MTime test + +import unittest +from maya.api import * +import math + +class TestMTime(unittest.TestCase): + + """ + The test is complete except for the setUIUnit() method. + """ + + def testConstructors(self): + """Test the MTime constructors. + + This also tests the value() and unit() methods. + """ + + # Standard constructor + t = MTime() + self.assertEqual(t.value(), 1.0) + self.assertEqual(t.unit(), MTime.uiUnit()) + + # Copy constructor + u = MTime(t) + self.assertEqual(u.value(), 1.0) + self.assertEqual(u.unit(), MTime.uiUnit()) + + # Providing a time value without unit + t = MTime(1.5) + self.assertEqual(t.value(), 1.5) + self.assertEqual(t.unit(), MTime.kFilm) + + # Providing a time value with unit + t = MTime(2.5, MTime.kPALFrame) + self.assertEqual(t.value(), 2.5) + self.assertEqual(t.unit(), MTime.kPALFrame) + + def testSetUnit(self): + """Test the setUnit() method. + """ + + t = MTime(2.5, MTime.kPALFrame) + + t.setUnit(MTime.kNTSCFrame) + self.assertEqual(t.unit(), MTime.kNTSCFrame) + + def testSetValue(self): + """Test the setValue() method. + """ + + t = MTime(2.5, MTime.kPALFrame) + + t.setValue(3.5) + self.assertEqual(t.value(), 3.5) + + def testAs(self): + """Test the as() method. + """ + + t = MTime(25, MTime.kPALFrame) + + ntsc = t.as(MTime.kNTSCFrame) + self.assertEqual(ntsc, 30) + + def testCmp(self): + """Test the comparison methods. + """ + + t1 = MTime(12, MTime.kPALFrame) + t2 = MTime(12, MTime.kPALFrame) + t3 = MTime(5, MTime.kPALFrame) + + # == and != + self.assertEqual(t1==t2, True) + self.assertEqual(t1!=t2, False) + + self.assertEqual(t1==t3, False) + self.assertEqual(t1!=t3, True) + + # <= + self.assertEqual(t1<=t2, True) + self.assertEqual(t3<=t1, True) + self.assertEqual(t1<=t3, False) + + # >= + self.assertEqual(t1>=t2, True) + self.assertEqual(t3>=t1, False) + self.assertEqual(t1>=t3, True) + + # < + self.assertEqual(t1<t2, False) + self.assertEqual(t3<t1, True) + self.assertEqual(t1<t3, False) + + # > + self.assertEqual(t1>t2, False) + self.assertEqual(t3>t1, False) + self.assertEqual(t1>t3, True) + + + def testPlus(self): + """Test the operator+() method. + """ + + t1 = MTime(5, MTime.kPALFrame) + t2 = MTime(10, MTime.kPALFrame) + + t = t1+t2 + self.assertEqual(t.value(), 15) + + t = t1+7 + self.assertEqual(t.value(), 12) + + def testPlusEq(self): + """Test the operator+=() method. + """ + + t1 = MTime(5, MTime.kPALFrame) + t2 = MTime(10, MTime.kPALFrame) + + t1 += t2 + self.assertEqual(t1.value(), 15) + + t1 += 7 + self.assertEqual(t1.value(), 22) + + def testMinus(self): + """Test the operator-() method. + """ + + t1 = MTime(12, MTime.kPALFrame) + t2 = MTime(5, MTime.kPALFrame) + + t = t1-t2 + self.assertEqual(t.value(), 7) + + t = t1-3 + self.assertEqual(t.value(), 9) + + def testMinusEq(self): + """Test the operator-=() method. + """ + + t1 = MTime(12, MTime.kPALFrame) + t2 = MTime(5, MTime.kPALFrame) + + t1 -= t2 + self.assertEqual(t1.value(), 7) + + t1 -= 3 + self.assertEqual(t1.value(), 4) + + def testMul(self): + """Test the operator*() method. + """ + + t = MTime(5, MTime.kPALFrame) + + t2 = t*2 + self.assertEqual(t2.value(), 10) + + def testMulEq(self): + """Test the operator*=() method. + """ + + t = MTime(5, MTime.kPALFrame) + + t *= 2 + self.assertEqual(t.value(), 10) + + def testDiv(self): + """Test the operator/() method. + """ + + t = MTime(10, MTime.kPALFrame) + + t2 = t/2 + self.assertEqual(t2.value(), 5) + + def testDivEq(self): + """Test the operator/=() method. + """ + + t = MTime(10, MTime.kPALFrame) + + t /= 2 + self.assertEqual(t.value(), 5) + Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUserEventMessage.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUserEventMessage.py 2006-07-26 12:10:42 UTC (rev 24) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUserEventMessage.py 2006-07-27 20:18:15 UTC (rev 25) @@ -26,13 +26,12 @@ from maya.api import * class TestMUserEventMessage(unittest.TestCase): + """Test the MUserEventMessage class and the callbacks. """ - - """ def testEvent(self): + """Test the user events. """ - """ self.callbackargs = [] Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-07-26 12:10:42 UTC (rev 24) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-07-27 20:18:15 UTC (rev 25) @@ -21,12 +21,14 @@ # ***** END LICENSE BLOCK ***** from MAngle import TestMAngle +from MDGMessage import TestMDGMessage from MFn import TestMFn from MFnBase import TestMFnBase from MImage import TestMImage from MObjectArray import TestMObjectArray from MStatus import TestMStatus from MString import TestMString +from MTime import TestMTime from MPoint import TestMPoint from MPointArray import TestMPointArray from MUserEventMessage import TestMUserEventMessage This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-20 14:22:37
|
Revision: 41 http://svn.sourceforge.net/cgkit/?rev=41&view=rev Author: mbaas Date: 2006-09-20 07:22:27 -0700 (Wed, 20 Sep 2006) Log Message: ----------- Added a unit test for MColor and fixed some other minor issues. Modified Paths: -------------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py Added Paths: ----------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColor.py Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColor.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColor.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColor.py 2006-09-20 14:22:27 UTC (rev 41) @@ -0,0 +1,197 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MColor test + +""" +Todo: - Include 3-sequence constructor test +""" + +import unittest +from maya.api import * +import math + +class TestMColor(unittest.TestCase): + + def testConstructors(self): + """Test the MColor constructors. + + This also tests the component access via the r, g, b and a attributes. + """ + + # Standard constructor + c = MColor() + self.assertEqual(c.r, 0) + self.assertEqual(c.g, 0) + self.assertEqual(c.b, 0) + self.assertEqual(c.a, 1.0) + + # Copy constructor + d = MColor(c) + self.assertEqual(c, d) + + # 2 args + c = MColor(0.5, 0.6) + self.assertAlmostEqual(c.r, 0.5, 4) + self.assertAlmostEqual(c.g, 0.6, 4) + self.assertEqual(c.b, 0) + self.assertEqual(c.a, 1.0) + + # 3 args + c = MColor(0.5, 0.6, 0.7) + self.assertAlmostEqual(c.r, 0.5, 4) + self.assertAlmostEqual(c.g, 0.6, 4) + self.assertAlmostEqual(c.b, 0.7, 4) + self.assertEqual(c.a, 1.0) + + # 4 args + c = MColor(0.5, 0.6, 0.7, 0.5) + self.assertAlmostEqual(c.r, 0.5, 4) + self.assertAlmostEqual(c.g, 0.6, 4) + self.assertAlmostEqual(c.b, 0.7, 4) + self.assertAlmostEqual(c.a, 0.5, 4) + + # Including color model + c = MColor(MColor.kRGB, 0.5, 0.6, 0.7) + self.assertAlmostEqual(c.r, 0.5, 4) + self.assertAlmostEqual(c.g, 0.6, 4) + self.assertAlmostEqual(c.b, 0.7, 4) + self.assertAlmostEqual(c.a, 1.0, 4) + + # 3-sequence +# c = MColor([0.5, 0.6, 0.7]) +# self.assertAlmostEqual(c.r, 0.5, 4) +# self.assertAlmostEqual(c.g, 0.6, 4) +# self.assertAlmostEqual(c.b, 0.7, 4) +# self.assertAlmostEqual(c.a, 1.0, 4) + + + def testComparisonOps(self): + """Test the MColor == and != operators. + """ + + v = MColor(0.2, 0.3, 0.4) + w = MColor(0.2, 0.3, 0.4) + u = MColor(0.0, 0.1, 0.4) + + self.assertEqual(v==w, True) + self.assertEqual(v!=w, False) + self.assertEqual(v==u, False) + self.assertEqual(v!=u, True) + + def testIndexOp(self): + """Test the MColor index operators. + """ + + c = MColor(0.5, 0.6, 0.7) + self.assertEqual(c[0], c.r) + self.assertEqual(c[1], c.g) + self.assertEqual(c[2], c.b) + self.assertEqual(c[3], c.a) + + def testDiv(self): + """Test the MColor / operator. + """ + a = MColor(0.5, 0.6, 0.7) + c = a/2.0 + self.assertEqual(c, MColor(0.25, 0.3, 0.35)) + + def testMul(self): + """Test the MColor * operator.""" + + a = MColor(0.2, 0.3, 0.6) + c = 2*a + self.assertEqual(c, MColor(0.4, 0.6, 1.0)) + + c = a*2 + self.assertEqual(c, MColor(0.4, 0.6, 1.0)) + + c = a*2.0 + self.assertEqual(c, MColor(0.4, 0.6, 1.0)) + + b = MColor(0.5, 1.0, 0.5) + c = a*b + self.assertEqual(c, MColor(0.1, 0.3, 0.3)) + + def testiMul(self): + """Test the MColor inline * operator.""" + a = MColor(0.2, 0.6, 0.3) + a *= 2 + self.assertEqual(a, MColor(0.4, 1.0, 0.6)) + + def testAdd(self): + """Test the MColor + operator.""" + a = MColor(0.2, 0.6, 0.3) + b = MColor(0.1, 0.5, 0.3) + c = a+b + self.assertEqual(c, MColor(0.3, 1.0, 0.6)) + + def testiAdd(self): + """Test the MColor inline + operator.""" + a = MColor(0.2, 0.6, 0.3) + b = MColor(0.1, 0.5, 0.3) + a += b + self.assertEqual(a, MColor(0.3, 1.0, 0.6)) + + def testSub(self): + """Test the MColor - operator.""" + a = MColor(1.0, 0.6, 0.4) + b = MColor(0.3, 0.2, 0.5) + c = a-b + self.assertAlmostEqual(c.r, 0.7, 4) + self.assertAlmostEqual(c.g, 0.4, 4) + self.assertAlmostEqual(c.b, 0, 4) + self.assertAlmostEqual(c.a, 1, 4) + + def testiSub(self): + """Test the MColor inline - operator.""" + a = MColor(1.0, 0.6, 0.4) + b = MColor(0.3, 0.2, 0.5) + a -= b + self.assertAlmostEqual(a.r, 0.7, 4) + self.assertAlmostEqual(a.g, 0.4, 4) + self.assertAlmostEqual(a.b, 0, 4) + self.assertAlmostEqual(a.a, 1, 4) + + def testGet(self): + """Test the MColor get() method. + """ + a = MColor(0.2, 0.3, 0.4) + + c = a.get() + self.assertEqual(len(c), 3) + self.assertAlmostEqual(c[0], a.r, 4) + self.assertAlmostEqual(c[1], a.g, 4) + self.assertAlmostEqual(c[2], a.b, 4) + + c = a.get(MColor.kRGB) + self.assertEqual(len(c), 3) + self.assertAlmostEqual(c[0], a.r, 4) + self.assertAlmostEqual(c[1], a.g, 4) + self.assertAlmostEqual(c[2], a.b, 4) + + c = a.get4(MColor.kRGB) + self.assertEqual(len(c), 4) + self.assertAlmostEqual(c[0], a.r, 4) + self.assertAlmostEqual(c[1], a.g, 4) + self.assertAlmostEqual(c[2], a.b, 4) + self.assertAlmostEqual(c[3], a.a, 4) Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColor.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py 2006-09-20 14:21:22 UTC (rev 40) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py 2006-09-20 14:22:27 UTC (rev 41) @@ -31,7 +31,7 @@ """ def testConstructors(self): - """Test the constructors. + """Test the MObjectArray constructors. """ # Standard constructor a = MObjectArray() @@ -55,7 +55,7 @@ self.assertEqual(a.length(), 2) def testIndexOperator(self): - """Test the index operator. + """Test the MObjectArray index operator. """ a = MObjectArray(3) @@ -63,7 +63,7 @@ a[0] = obj def testSet(self): - """Test the set() method. + """Test the MObjectArray set() method. """ a = MObjectArray(3) @@ -71,7 +71,7 @@ def testLength(self): - """Test the length()/setLength() methods. + """Test the MObjectArray length()/setLength() methods. """ a = MObjectArray() @@ -84,7 +84,7 @@ self.assertEqual(a.length(), 3) def testRemove(self): - """Test the remove() method. + """Test the MObjectArray remove() method. """ a = MObjectArray(5) @@ -93,7 +93,7 @@ self.assertEqual(a.length(), 4) def testInsert(self): - """Test the insert() method. + """Test the MObjectArray insert() method. """ a = MObjectArray(4) @@ -102,7 +102,7 @@ self.assertEqual(a.length(), 5) def testAppend(self): - """Test the append() method. + """Test the MObjectArray append() method. """ a = MObjectArray(4) @@ -111,7 +111,7 @@ self.assertEqual(a.length(), 5) def testClear(self): - """Test the clear() method. + """Test the MObjectArray clear() method. """ a = MObjectArray(4) @@ -120,7 +120,7 @@ self.assertEqual(a.length(), 0) def testGet(self): - """Test the get() method. + """Test the MObjectArray get() method. """ a = MObjectArray(3) @@ -133,7 +133,7 @@ self.assertEqual(len(lst), 3) def testSizeIncrement(self): - """Test the sizeIncrement()/setSizeIncrement() methods. + """Test the MObjectArray sizeIncrement()/setSizeIncrement() methods. """ a = MObjectArray() Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-09-20 14:21:22 UTC (rev 40) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-09-20 14:22:27 UTC (rev 41) @@ -24,11 +24,12 @@ import unittest from maya.api import * +MPoint.__repr__ = MPoint.__str__ class TestMPointArray(unittest.TestCase): def testConstructors(self): - """Test the constructors. + """Test the MPointArray constructors. """ # Standard constructor pnts = MPointArray() @@ -50,11 +51,18 @@ pnts = MPointArray([MPoint(1,2,3), MPoint(4,5,6), MPoint(7,8,9)]) self.assertEqual(pnts.length(), 3) self.assertEqual(pnts[0], MPoint(1,2,3,1)) - self.assertEqual(pnts[0], MPoint(4,5,6,1)) - self.assertEqual(pnts[0], MPoint(7,8,9,1)) + self.assertEqual(pnts[1], MPoint(4,5,6,1)) + self.assertEqual(pnts[2], MPoint(7,8,9,1)) + # Copy constructor + pnts2 = MPointArray(pnts) + self.assertEqual(pnts2.length(), 3) + self.assertEqual(pnts2[0], MPoint(1,2,3,1)) + self.assertEqual(pnts2[1], MPoint(4,5,6,1)) + self.assertEqual(pnts2[2], MPoint(7,8,9,1)) + def testIndexOperator(self): - """Test the index operator. + """Test the MPointArray index operator. """ pnts = MPointArray(3) @@ -70,7 +78,7 @@ self.assertEqual(pnts[0], MPoint(4,5,6)) def testSet(self): - """Test the set() method. + """Test the MPointArray set() method. """ pnts = MPointArray(3) @@ -88,7 +96,7 @@ self.assertEqual(pnts[2], MPoint(3,2,1,1)) def testLength(self): - """Test the length()/setLength() methods. + """Test the MPointArray length()/setLength() methods. """ pnts = MPointArray() @@ -101,7 +109,7 @@ self.assertEqual(pnts.length(), 3) def testRemove(self): - """Test the remove() method. + """Test the MPointArray remove() method. """ pnts = MPointArray(5) @@ -110,7 +118,7 @@ self.assertEqual(pnts.length(), 4) def testInsert(self): - """Test the insert() method. + """Test the MPointArray insert() method. """ pnts = MPointArray(4) @@ -119,7 +127,7 @@ self.assertEqual(pnts.length(), 5) def testAppend(self): - """Test the append() method. + """Test the MPointArray append() method. """ pnts = MPointArray(4) @@ -131,7 +139,7 @@ self.assertEqual(pnts.length(), 6) def testCopy(self): - """Test the copy() method. + """Test the MPointArray copy() method. """ src = MPointArray(3) @@ -147,7 +155,7 @@ self.assertEqual(pnts[2], MPoint(7,8,9)) def testClear(self): - """Test the clear() method. + """Test the MPointArray clear() method. """ pnts = MPointArray(4) @@ -156,7 +164,7 @@ self.assertEqual(pnts.length(), 0) def testGet(self): - """Test the get() method. + """Test the MPointArray get() method. """ pnts = MPointArray(3) Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-09-20 14:21:22 UTC (rev 40) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-09-20 14:22:27 UTC (rev 41) @@ -21,6 +21,7 @@ # ***** END LICENSE BLOCK ***** from MAngle import TestMAngle +from MColor import TestMColor from MDGMessage import TestMDGMessage from MFn import TestMFn from MFnBase import TestMFnBase This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-26 16:43:12
|
Revision: 60 http://svn.sourceforge.net/cgkit/?rev=60&view=rev Author: mbaas Date: 2006-09-26 09:42:53 -0700 (Tue, 26 Sep 2006) Log Message: ----------- Added some more unit tests. Modified Paths: -------------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py Added Paths: ----------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatMatrix.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MGlobal.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MMatrix.py Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatMatrix.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatMatrix.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatMatrix.py 2006-09-26 16:42:53 UTC (rev 60) @@ -0,0 +1,241 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MFloatMatrix test + +import unittest +from maya.api import * +import math + +class TestMFloatMatrix(unittest.TestCase): + + def testConstructors(self): + """Test the MFloatMatrix constructors. + + This also tests the get() method. + """ + + # Standard constructor + m = MFloatMatrix() + self.assertEqual(m.get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + + # Sequence of rows + m = MFloatMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + + # Copy constructor + n = MFloatMatrix(m) + self.assertEqual(n.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + + def testIndexOpRead(self): + """Test the MFloatMatrix index operators (reading values). + """ + + m = MFloatMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + self.assertEqual(m[0], [1,2,3,4]) + self.assertEqual(m[1], [5,6,7,8]) + self.assertEqual(m[2], [9,10,11,12]) + self.assertEqual(m[3], [13,14,15,16]) + self.assertRaises(IndexError, lambda : m[-1]) + self.assertRaises(IndexError, lambda : m[4]) + + self.assertEqual(m[0,0], 1) + self.assertEqual(m[0,1], 2) + self.assertEqual(m[0,2], 3) + self.assertEqual(m[0,3], 4) + self.assertEqual(m[1,0], 5) + self.assertEqual(m[1,1], 6) + self.assertEqual(m[1,2], 7) + self.assertEqual(m[1,3], 8) + self.assertEqual(m[2,0], 9) + self.assertEqual(m[2,1], 10) + self.assertEqual(m[2,2], 11) + self.assertEqual(m[2,3], 12) + self.assertEqual(m[3,0], 13) + self.assertEqual(m[3,1], 14) + self.assertEqual(m[3,2], 15) + self.assertEqual(m[3,3], 16) + self.assertRaises(IndexError, lambda : m[-1,0]) + self.assertRaises(IndexError, lambda : m[4,0]) + self.assertRaises(IndexError, lambda : m[0,-1]) + self.assertRaises(IndexError, lambda : m[0,4]) + + def testIndexOpWrite(self): + """Test the MFloatMatrix index operators (writing values). + """ + + m = MFloatMatrix() + self.assertEqual(m.get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + + m[0] = (1,2,3,4) + self.assertEqual(m.get(), [[1,2,3,4], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + m[1] = (5,6,7,8) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [0,0,1,0], [0,0,0,1]]) + m[2] = (9,10,11,12) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [0,0,0,1]]) + m[3] = (13,14,15,16) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + + def assign(idx): + m[idx] = [0,0,0,0] + self.assertRaises(IndexError, lambda : assign(-1)) + self.assertRaises(IndexError, lambda : assign(4)) + + m = MFloatMatrix() + m[0,0] = 1 + m[0,1] = 2 + m[0,2] = 3 + m[0,3] = 4 + m[1,0] = 5 + m[1,1] = 6 + m[1,2] = 7 + m[1,3] = 8 + m[2,0] = 9 + m[2,1] = 10 + m[2,2] = 11 + m[2,3] = 12 + m[3,0] = 13 + m[3,1] = 14 + m[3,2] = 15 + m[3,3] = 16 + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + + def assign(i,j): + m[i,j] = 0 + self.assertRaises(IndexError, lambda : assign(-1,0)) + self.assertRaises(IndexError, lambda : assign(4,0)) + self.assertRaises(IndexError, lambda : assign(0,-1)) + self.assertRaises(IndexError, lambda : assign(0,4)) + + def testTranspose(self): + """Test the MFloatMatrix transpose() method.""" + + m = MFloatMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + n = m.transpose() + self.assertEqual(n.get(), [[1,5,9,13], [2,6,10,14], [3,7,11,15], [4,8,12,16]]) + + def testSetToIdentity(self): + """Test the MFloatMatrix setToIdentity() method.""" + + m = MFloatMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + m.setToIdentity() + self.assertEqual(m.get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + + def testSetToProduct(self): + """Test the MFloatMatrix setToProduct() method.""" + + a = MFloatMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + b = a.transpose() + + m = MFloatMatrix() + m.setToProduct(a,b) + self.assertEqual(m.get(), [[30,70,110,150], [70,174,278,382], [110,278,446,614], [150,382,614,846]]) + + def testAdd(self): + """Test the MFloatMatrix + and += operator.""" + + a = MFloatMatrix() + b = MFloatMatrix() + self.assertEqual((a+b).get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + + a+=b + self.assertEqual(a.get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + + def testSub(self): + """Test the MFloatMatrix - and -= operator.""" + + a = MFloatMatrix() + b = MFloatMatrix() + self.assertEqual((a-b).get(), [[0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]]) + + a-=b + self.assertEqual(a.get(), [[0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]]) + + def testMul(self): + """Test the MFloatMatrix * and *= operators.""" + + # Matrix/Float + m = MFloatMatrix() + self.assertEqual((2*m).get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + self.assertEqual((m*2).get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + m*=2 + self.assertEqual(m.get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + + # Matrix/Matrix + a = MFloatMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + b = a.transpose() + + self.assertEqual((a*b).get(), [[30,70,110,150], [70,174,278,382], [110,278,446,614], [150,382,614,846]]) + a*=b + self.assertEqual(a.get(), [[30,70,110,150], [70,174,278,382], [110,278,446,614], [150,382,614,846]]) + + def testComparisonOps(self): + """Test the MFloatMatrix == and != operators. + """ + + v = MFloatMatrix() + w = MFloatMatrix() + u = 2*MFloatMatrix() + + self.assertEqual(v==w, True) + self.assertEqual(v!=w, False) + self.assertEqual(v==u, False) + self.assertEqual(v!=u, True) + + def testInverse(self): + """Test the MFloatMatrix inverse() method.""" + + a = MFloatMatrix([[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + b = a.inverse() + self.assertEqual((a*b).get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + + def testAdjoint(self): + """Test the MFloatMatrix adjoint() method.""" + + a = MFloatMatrix([[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + b = a.adjoint() + + def testAdjoint(self): + """Test the MFloatMatrix homogenize() method.""" + + a = MFloatMatrix([[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + b = a.homogenize() + self.assertEqual(b.get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,2]]) + + def testDet(self): + """Test the MFloatMatrix det4x4() and det3x3() methods.""" + m = MFloatMatrix([[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + self.assertEqual(m.det4x4(), 16) + self.assertEqual(m.det3x3(), 8) + + def testIsEquivalent(self): + """Test the MFloatMatrix isEquivalent() method.""" + + v = MFloatMatrix() + w = MFloatMatrix() + u = 2*MFloatMatrix() + + self.assertEqual(v.isEquivalent(w), True) + self.assertEqual(v.isEquivalent(u), False) + self.assertEqual(v.isEquivalent(u,2), True) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatMatrix.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MGlobal.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MGlobal.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MGlobal.py 2006-09-26 16:42:53 UTC (rev 60) @@ -0,0 +1,58 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MGlobal test + +import unittest +from maya.api import * +from maya import _api + +class TestMGlobal(unittest.TestCase): + """MGlobal unit test. + + This just checks a few methods to see that static members can + be called successfully. + """ + + def testMethods(self): + """Test MGlobal methods. + + Test some methods to see if static methods can be called. + """ + + # Check that mayaVersion() returns a string + self.assertEqual(type(MGlobal.mayaVersion()), str) + + self.assertEqual(MGlobal.mayaState(), MGlobal.kInteractive) + + self.assertEqual(type(MGlobal.isYAxisUp()), bool) + self.assertEqual(type(MGlobal.isZAxisUp()), bool) + + self.assertEqual(type(MGlobal.upAxis()), _api.MVector) + + MGlobal.displayInfo("MGlobal unit test") + MGlobal.displayInfo(MString("MGlobal unit test")) + + # Just call the method to check that it is callable + sel = MSelectionList() + status = MGlobal.getSelectionListByName("persp", sel) + self.assertEqual(type(status), _api.MStatus) Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MGlobal.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MMatrix.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MMatrix.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MMatrix.py 2006-09-26 16:42:53 UTC (rev 60) @@ -0,0 +1,255 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MMatrix test + +import unittest +from maya.api import * +import math + +class TestMMatrix(unittest.TestCase): + + def testConstructors(self): + """Test the MMatrix constructors. + + This also tests the get() method. + """ + + # Standard constructor + m = MMatrix() + self.assertEqual(m.get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + + # Sequence of rows + m = MMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + + # Copy constructor + n = MMatrix(m) + self.assertEqual(n.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + + def testStaticMats(self): + """Test the MMatrix static members.""" + + self.assertEqual((MMatrix.identity-MMatrix()).get(), [[0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]]) + + def testIndexOpRead(self): + """Test the MMatrix index operators (reading values). + """ + + m = MMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + self.assertEqual(m[0], [1,2,3,4]) + self.assertEqual(m[1], [5,6,7,8]) + self.assertEqual(m[2], [9,10,11,12]) + self.assertEqual(m[3], [13,14,15,16]) + self.assertRaises(IndexError, lambda : m[-1]) + self.assertRaises(IndexError, lambda : m[4]) + + self.assertEqual(m[0,0], 1) + self.assertEqual(m[0,1], 2) + self.assertEqual(m[0,2], 3) + self.assertEqual(m[0,3], 4) + self.assertEqual(m[1,0], 5) + self.assertEqual(m[1,1], 6) + self.assertEqual(m[1,2], 7) + self.assertEqual(m[1,3], 8) + self.assertEqual(m[2,0], 9) + self.assertEqual(m[2,1], 10) + self.assertEqual(m[2,2], 11) + self.assertEqual(m[2,3], 12) + self.assertEqual(m[3,0], 13) + self.assertEqual(m[3,1], 14) + self.assertEqual(m[3,2], 15) + self.assertEqual(m[3,3], 16) + self.assertRaises(IndexError, lambda : m[-1,0]) + self.assertRaises(IndexError, lambda : m[4,0]) + self.assertRaises(IndexError, lambda : m[0,-1]) + self.assertRaises(IndexError, lambda : m[0,4]) + + def testIndexOpWrite(self): + """Test the MMatrix index operators (writing values). + """ + + m = MMatrix() + self.assertEqual(m.get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + + m[0] = (1,2,3,4) + self.assertEqual(m.get(), [[1,2,3,4], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + m[1] = (5,6,7,8) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [0,0,1,0], [0,0,0,1]]) + m[2] = (9,10,11,12) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [0,0,0,1]]) + m[3] = (13,14,15,16) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + + def assign(idx): + m[idx] = [0,0,0,0] + self.assertRaises(IndexError, lambda : assign(-1)) + self.assertRaises(IndexError, lambda : assign(4)) + + m = MMatrix() + m[0,0] = 1 + m[0,1] = 2 + m[0,2] = 3 + m[0,3] = 4 + m[1,0] = 5 + m[1,1] = 6 + m[1,2] = 7 + m[1,3] = 8 + m[2,0] = 9 + m[2,1] = 10 + m[2,2] = 11 + m[2,3] = 12 + m[3,0] = 13 + m[3,1] = 14 + m[3,2] = 15 + m[3,3] = 16 + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + + def assign(i,j): + m[i,j] = 0 + self.assertRaises(IndexError, lambda : assign(-1,0)) + self.assertRaises(IndexError, lambda : assign(4,0)) + self.assertRaises(IndexError, lambda : assign(0,-1)) + self.assertRaises(IndexError, lambda : assign(0,4)) + + def testTranspose(self): + """Test the MMatrix transpose() method.""" + + m = MMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + n = m.transpose() + self.assertEqual(n.get(), [[1,5,9,13], [2,6,10,14], [3,7,11,15], [4,8,12,16]]) + + def testSetToIdentity(self): + """Test the MMatrix setToIdentity() method.""" + + m = MMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + self.assertEqual(m.get(), [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + m.setToIdentity() + self.assertEqual(m.get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + + def testSetToProduct(self): + """Test the MMatrix setToProduct() method.""" + + a = MMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + b = a.transpose() + + m = MMatrix() + m.setToProduct(a,b) + self.assertEqual(m.get(), [[30,70,110,150], [70,174,278,382], [110,278,446,614], [150,382,614,846]]) + + def testAdd(self): + """Test the MMatrix + and += operator.""" + + a = MMatrix() + b = MMatrix() + self.assertEqual((a+b).get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + + a+=b + self.assertEqual(a.get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + + def testSub(self): + """Test the MMatrix - and -= operator.""" + + a = MMatrix() + b = MMatrix() + self.assertEqual((a-b).get(), [[0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]]) + + a-=b + self.assertEqual(a.get(), [[0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]]) + + def testMul(self): + """Test the MMatrix * and *= operators.""" + + # Matrix/Float + m = MMatrix() + self.assertEqual((2*m).get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + self.assertEqual((m*2).get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + m*=2 + self.assertEqual(m.get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + + # Matrix/Matrix + a = MMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) + b = a.transpose() + + self.assertEqual((a*b).get(), [[30,70,110,150], [70,174,278,382], [110,278,446,614], [150,382,614,846]]) + a*=b + self.assertEqual(a.get(), [[30,70,110,150], [70,174,278,382], [110,278,446,614], [150,382,614,846]]) + + def testComparisonOps(self): + """Test the MMatrix == and != operators. + """ + + v = MMatrix() + w = MMatrix() + u = 2*MMatrix() + + self.assertEqual(v==w, True) + self.assertEqual(v!=w, False) + self.assertEqual(v==u, False) + self.assertEqual(v!=u, True) + + def testInverse(self): + """Test the MMatrix inverse() method.""" + + a = MMatrix([[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + b = a.inverse() + self.assertEqual((a*b).get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]]) + + def testAdjoint(self): + """Test the MMatrix adjoint() method.""" + + a = MMatrix([[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + b = a.adjoint() + + def testAdjoint(self): + """Test the MMatrix homogenize() method.""" + + a = MMatrix([[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + b = a.homogenize() + self.assertEqual(b.get(), [[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,2]]) + + def testDet(self): + """Test the MMatrix det4x4() and det3x3() methods.""" + m = MMatrix([[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + self.assertEqual(m.det4x4(), 16) + self.assertEqual(m.det3x3(), 8) + + def testIsEquivalent(self): + """Test the MMatrix isEquivalent() method.""" + + v = MMatrix() + w = MMatrix() + u = 2*MMatrix() + + self.assertEqual(v.isEquivalent(w), True) + self.assertEqual(v.isEquivalent(u), False) + self.assertEqual(v.isEquivalent(u,2), True) + + def testIsSingular(self): + """Test the MMatrix isSingular() method.""" + + m = MMatrix() + self.assertEqual(m.isSingular(), False) + m[0,0] = 0 + self.assertEqual(m.isSingular(), True) + + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MMatrix.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-09-26 16:42:26 UTC (rev 59) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-09-26 16:42:53 UTC (rev 60) @@ -23,9 +23,12 @@ from MAngle import TestMAngle from MColor import TestMColor from MDGMessage import TestMDGMessage +from MFloatMatrix import TestMFloatMatrix from MFn import TestMFn from MFnBase import TestMFnBase +from MGlobal import TestMGlobal from MImage import TestMImage +from MMatrix import TestMMatrix from MObjectArray import TestMObjectArray from MStatus import TestMStatus from MString import TestMString This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-09-29 16:59:27
|
Revision: 65 http://svn.sourceforge.net/cgkit/?rev=65&view=rev Author: mbaas Date: 2006-09-29 09:59:06 -0700 (Fri, 29 Sep 2006) Log Message: ----------- Extended the unit tests. Modified Paths: -------------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatMatrix.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPoint.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MString.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVector.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py Added Paths: ----------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MBoundingBox.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPoint.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVector.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObject.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MBoundingBox.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MBoundingBox.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MBoundingBox.py 2006-09-29 16:59:06 UTC (rev 65) @@ -0,0 +1,68 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MBoundingBox test + +import unittest +from maya.api import * + +class TestMBoundingBox(unittest.TestCase): + + def testConstructors(self): + """Test the MBoundingBox constructors. + """ + + # Standard constructor + bb = MBoundingBox() + + # Copy constructor + bb2 = MBoundingBox(bb) + + # 2 points + bb = MBoundingBox(MPoint(-1,-1,-1), MPoint(1,1,1)) + self.assertEqual(bb.min(), MPoint(-1,-1,-1)) + self.assertEqual(bb.max(), MPoint(1,1,1)) + + # 2 points (as tuples) + bb = MBoundingBox((-1,-1,-1), (1,1,1)) + self.assertEqual(bb.min(), MPoint(-1,-1,-1)) + self.assertEqual(bb.max(), MPoint(1,1,1)) + + def testMethods(self): + """Test the MBoundingBox methods. + """ + bb = MBoundingBox((-1,-1,-1), (1,1,1)) + + bb.transformUsing(MMatrix()) + bb.expand(MPoint(0,0,0)) + bb.expand((1,2,1)) + bb.expand(MBoundingBox()) + self.assertEqual(bb.contains((0,0,0)), True) + + self.assertEqual(bb.width(), 2.0) + self.assertEqual(bb.height(), 3.0) + self.assertEqual(bb.depth(), 2.0) + + self.assertEqual(bb.center(), MPoint(0,0.5,0)) + self.assertEqual(bb.min(), MPoint(-1,-1,-1)) + self.assertEqual(bb.max(), MPoint(1,2,1)) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MBoundingBox.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatMatrix.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatMatrix.py 2006-09-29 16:58:20 UTC (rev 64) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatMatrix.py 2006-09-29 16:59:06 UTC (rev 65) @@ -178,9 +178,13 @@ m = MFloatMatrix() self.assertEqual((2*m).get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) self.assertEqual((m*2).get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) - m*=2 - self.assertEqual(m.get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + # The *= operator doesn't work for some reason (it doesn't modify + # the matrix). This also happens in C++, so it's probably a bug + # in Maya +# m*=2 +# self.assertEqual(m.get(), [[2,0,0,0], [0,2,0,0], [0,0,2,0], [0,0,0,2]]) + # Matrix/Matrix a = MFloatMatrix([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]) b = a.transpose() Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPoint.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPoint.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPoint.py 2006-09-29 16:59:06 UTC (rev 65) @@ -0,0 +1,226 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MFloatPoint test + +import unittest +from maya.api import * +import math + +class TestMFloatPoint(unittest.TestCase): + + def testConstructors(self): + """Test the MFloatPoint constructors. + + This also tests the component access via the x, y, z and w attributes. + """ + + # Standard constructor + p = MFloatPoint() + self.assertEqual(p.x, 0) + self.assertEqual(p.y, 0) + self.assertEqual(p.z, 0) + self.assertEqual(p.w, 1) + + # 2 args + p = MFloatPoint(1.2, -2) + self.assertAlmostEqual(p.x, 1.2, 4) + self.assertAlmostEqual(p.y, -2, 4) + self.assertEqual(p.z, 0) + self.assertEqual(p.w, 1.0) + + # 3 args + p = MFloatPoint(0.5, 1.9, 2.3) + self.assertAlmostEqual(p.x, 0.5, 4) + self.assertAlmostEqual(p.y, 1.9, 4) + self.assertAlmostEqual(p.z, 2.3, 4) + self.assertAlmostEqual(p.w, 1, 4) + + # 4 args + p = MFloatPoint(1, 2, 3, 4) + self.assertAlmostEqual(p.x, 1, 4) + self.assertAlmostEqual(p.y, 2, 4) + self.assertAlmostEqual(p.z, 3, 4) + self.assertAlmostEqual(p.w, 4, 4) + + # MFloatPoint arg + p = MFloatPoint(0.6, 0.7, 0.8, 5) + q = MFloatPoint(p) + self.assertEqual(q.x, p.x) + self.assertEqual(q.y, p.y) + self.assertEqual(q.z, p.z) + self.assertEqual(q.w, p.w) + + # A sequence arg + p = MFloatPoint([1.5,0.3,0.5]) + self.assertAlmostEqual(p.x, 1.5, 4) + self.assertAlmostEqual(p.y, 0.3, 4) + self.assertAlmostEqual(p.z, 0.5, 4) + self.assertAlmostEqual(p.w, 1.0, 4) + + p = MFloatPoint([0.5,1.2,1.9, 2.0]) + self.assertAlmostEqual(p.x, 0.5, 4) + self.assertAlmostEqual(p.y, 1.2, 4) + self.assertAlmostEqual(p.z, 1.9, 4) + self.assertAlmostEqual(p.w, 2.0, 4) + + def testStaticPoints(self): + """Test the MFloatPoint static members.""" + + self.assertPointEqual(MFloatPoint.origin, MFloatPoint(0,0,0)) + + def testComparisonOps(self): + """Test the == and != operators. + """ + + v = MFloatPoint(1.2, -0.5, 1.1) + w = MFloatPoint(1.2, -0.5, 1.1) + u = MFloatPoint(1.2, 0.25, 1.1) + + self.assertEqual(v==w, True) + self.assertEqual(v!=w, False) + self.assertEqual(v==u, False) + self.assertEqual(v!=u, True) + + def testIndexOp(self): + """Test the MFloatPoint index operators. + """ + + p = MFloatPoint(1.5, 0.2, 0.5) + self.assertEqual(p[0], p.x) + self.assertEqual(p[1], p.y) + self.assertEqual(p[2], p.z) + self.assertEqual(p[3], p.w) + + p[0] = 0.5 + p[1] = 0.6 + p[2] = 0.7 + p[3] = 0.8 + self.assertAlmostEqual(p.x, 0.5, 4) + self.assertAlmostEqual(p.y, 0.6, 4) + self.assertAlmostEqual(p.z, 0.7, 4) + self.assertAlmostEqual(p.w, 0.8, 4) + + def testDiv(self): + """Test the MFloatPoint / operator. + """ + a = MFloatPoint(2, 4, 6) + c = a/2.0 + self.assertPointEqual(c, MFloatPoint(1,2,3)) + + def testMul(self): + """Test the MFloatPoint * operator.""" + + a = MFloatPoint(-1, 2.5, 3) + c = 2*a + self.assertPointEqual(c, MFloatPoint(-2,5,6)) + + c = a*2 + self.assertPointEqual(c, MFloatPoint(-2,5,6)) + + c = a*2.0 + self.assertPointEqual(c, MFloatPoint(-2,5,6)) + + M = MFloatMatrix() + a *= M + c = M*a + c = a*M + + def testAdd(self): + """Test the MFloatPoint + operator.""" + a = MFloatPoint(1.5, 2, 3) + b = MFloatVector(2, -1.2, 7) + c = a+b + self.assertPointEqual(c, MFloatPoint(3.5,0.8,10)) + + def testiAdd(self): + """Test the MFloatPoint inline + operator.""" + a = MFloatPoint(1.5, 2, 3) + b = MFloatVector(2, -1.2, 7) + a += b + self.assertPointEqual(a, MFloatPoint(3.5,0.8,10)) + + def testSub(self): + """Test the MFloatPoint - operator.""" + a = MFloatPoint(1.5, 2, 3) + b = MFloatVector(2, -1.2, 7) + c = a-b + self.assertPointEqual(c, MFloatPoint(-0.5,3.2,-4)) + + def testiSub(self): + """Test the MFloatPoint inline - operator.""" + a = MFloatPoint(1.5, 2, 3) + b = MFloatVector(2, -1.2, 7) + a -= b + self.assertPointEqual(a, MFloatPoint(-0.5,3.2,-4)) + + def testGet(self): + """Test the MFloatPoint get() method. + """ + a = MFloatPoint(1,2,3) + c = a.get() + self.assertEqual(len(c), 4) + self.assertEqual(c[0], a.x) + self.assertEqual(c[1], a.y) + self.assertEqual(c[2], a.z) + self.assertEqual(c[3], a.w) + + def testCartesianize(self): + """Test the MFloatPoint cartesianize() method.""" + a = MFloatPoint(1, 2, 4, 2) + c = a.cartesianize() + self.assertPointEqual(c, MFloatPoint(0.5,1,2)) + + def testRationalize(self): + """Test the MFloatPoint rationalize() method.""" + a = MFloatPoint(1, 2, 4, 2) + c = a.rationalize() + self.assertPointEqual(c, MFloatPoint(0.5,1,2,2)) + + def testHomogenize(self): + """Test the MFloatPoint homogenize() method.""" + a = MFloatPoint(1, 2, 4, 2) + c = a.homogenize() + self.assertPointEqual(c, MFloatPoint(2,4,8,2)) + + def testIsEquivalent(self): + """Test the MFloatPoint isEquivalent() method.""" + a = MFloatPoint(1, 2, 4, 2) + c = MFloatPoint(1, 2, 4) + a.isEquivalent(c, 0.001) + + def testDistanceTo(self): + """Test the MFloatPoint distanceTo() method.""" + a = MFloatPoint(1, 2, 4, 2) + c = MFloatPoint(1, 2, 4) + self.assertEqual(type(a.distanceTo(c)), float) + + # Helper method to compare points + + def assertPointEqual(self, a, b): + """Compare MFloatPoints a and b. + """ + eps = 1E-5 + self.failIf((a.x-b.x)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.x, a.y, a.z, a.w, b.x, b.y, b.z, b.w)) + self.failIf((a.y-b.y)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.x, a.y, a.z, a.w, b.x, b.y, b.z, b.w)) + self.failIf((a.z-b.z)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.x, a.y, a.z, a.w, b.x, b.y, b.z, b.w)) + self.failIf((a.w-b.w)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.x, a.y, a.z, a.w, b.x, b.y, b.z, b.w)) Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPoint.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVector.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVector.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVector.py 2006-09-29 16:59:06 UTC (rev 65) @@ -0,0 +1,255 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MVector test + +import unittest +from maya.api import * +import math + +class TestMFloatVector(unittest.TestCase): + + def testConstructors(self): + """Test the MFloatVector constructors. + + This also tests the component access via the x, y and z attributes. + """ + + # Standard constructor + v = MFloatVector() + self.assertEqual(v.x, 0) + self.assertEqual(v.y, 0) + self.assertEqual(v.z, 0) + + # 3 args + v = MFloatVector(1.2, -2, 3.7) + self.assertAlmostEqual(v.x, 1.2, 4) + self.assertAlmostEqual(v.y, -2, 4) + self.assertAlmostEqual(v.z, 3.7, 4) + + # MVector arg + dv = MVector(0.6, 0.7, 0.8) + v = MFloatVector(dv) + self.assertAlmostEqual(v.x, dv.x, 4) + self.assertAlmostEqual(v.y, dv.y, 4) + self.assertAlmostEqual(v.z, dv.z, 4) + + # MPoint arg + p = MPoint(0.6, 0.7, 0.8, 5) + v = MFloatVector(p) + self.assertAlmostEqual(v.x, p.x, 4) + self.assertAlmostEqual(v.y, p.y, 4) + self.assertAlmostEqual(v.z, p.z, 4) + + # Copy constructor + w = MFloatVector(0.6, 0.7, 0.8) + v = MFloatVector(w) + self.assertEqual(v.x, w.x) + self.assertEqual(v.y, w.y) + self.assertEqual(v.z, w.z) + + # 2 args + v = MFloatVector(4.3, 1.1) + self.assertAlmostEqual(v.x, 4.3, 4) + self.assertAlmostEqual(v.y, 1.1, 4) + self.assertAlmostEqual(v.z, 0, 4) + + # A sequence arg + v = MFloatVector([1.5,0.3,0.5]) + self.assertAlmostEqual(v.x, 1.5, 4) + self.assertAlmostEqual(v.y, 0.3, 4) + self.assertAlmostEqual(v.z, 0.5, 4) + + def testStaticVecs(self): + """Test the MFloatVector static members.""" + + self.assertVecEqual(MFloatVector.zero, MFloatVector(0,0,0)) + self.assertVecEqual(MFloatVector.one, MFloatVector(1,1,1)) + self.assertVecEqual(MFloatVector.xAxis, MFloatVector(1,0,0)) + self.assertVecEqual(MFloatVector.yAxis, MFloatVector(0,1,0)) + self.assertVecEqual(MFloatVector.zAxis, MFloatVector(0,0,1)) + self.assertVecEqual(MFloatVector.xNegAxis, MFloatVector(-1,0,0)) + self.assertVecEqual(MFloatVector.yNegAxis, MFloatVector(0,-1,0)) + self.assertVecEqual(MFloatVector.zNegAxis, MFloatVector(0,0,-1)) + + def testComparisonOps(self): + """Test the MFloatVector == and != operators. + """ + + v = MFloatVector(1.2, -0.5, 1.1) + w = MFloatVector(1.2, -0.5, 1.1) + u = MFloatVector(1.2, 0.25, 1.1) + + self.assertEqual(v==w, True) + self.assertEqual(v!=w, False) + self.assertEqual(v==u, False) + self.assertEqual(v!=u, True) + + def testIndexOp(self): + """Test the MFloatVector index operators. + """ + + v = MFloatVector(1.5, 0.2, 0.5) + self.assertEqual(v[0], v.x) + self.assertEqual(v[1], v.y) + self.assertEqual(v[2], v.z) + + v[0] = 2.0 + v[1] = 0.5 + v[2] = -1 + self.assertEqual(v[0], 2.0) + self.assertEqual(v[1], 0.5) + self.assertEqual(v[2], -1.0) + +# v = MFloatVector(1.5, 0.2, 0.5) +# self.assertEqual(v(0), v.x) +# self.assertEqual(v(1), v.y) +# self.assertEqual(v(2), v.z) + + def testCrossProduct(self): + """Test the MFloatVector cross product operator ^. + """ + a = MFloatVector(1, 0.5, -1.8) + b = MFloatVector(-0.3, 0.75, 0.5) + c = a^b + + self.assertVecEqual(c, MFloatVector(1.6, 0.04, 0.9)) + + def testDiv(self): + """Test the MFloatVector / operator. + """ + a = MFloatVector(2, 4, 6) + c = a/2.0 + self.assertVecEqual(c, MFloatVector(1,2,3)) + + def testiDiv(self): + """Test the MFloatVector inline / operator. + """ + a = MFloatVector(1.5, 2, 3) + a /= 2.0 + self.assertVecEqual(a, MFloatVector(0.75,1,1.5)) + + def testiMul(self): + """Test the MFloatVector inline * operator.""" + a = MFloatVector(1.5, 2, 3) + a*=2 + self.assertVecEqual(a, MFloatVector(3,4,6)) + + def testMul(self): + """Test the MFloatVector * operator.""" + + a = MFloatVector(-1, 2.5, 3) + c = 2*a + self.assertVecEqual(c, MFloatVector(-2,5,6)) + + c = a*2 + self.assertVecEqual(c, MFloatVector(-2,5,6)) + + c = a*2L + self.assertVecEqual(c, MFloatVector(-2,5,6)) + + c = 2.0*a + self.assertVecEqual(c, MFloatVector(-2,5,6)) + + c = a*2.0 + self.assertVecEqual(c, MFloatVector(-2,5,6)) + + b = MFloatVector(2,4,-1) + c = a*b + self.assertEqual(c, 5.0) + + M = MFloatMatrix() + c = M*a + c = a*M + + def testAdd(self): + """Test the MFloatVector + operator.""" + a = MFloatVector(1.5, 2, 3) + b = MFloatVector(2, -1.2, 7) + c = a+b + self.assertVecEqual(c, MFloatVector(3.5,0.8,10)) + + def testiAdd(self): + """Test the MFloatVector inline + operator.""" + a = MFloatVector(1.5, 2, 3) + b = MFloatVector(2, -1.2, 7) + a += b + self.assertVecEqual(a, MFloatVector(3.5,0.8,10)) + + def testSub(self): + """Test the MFloatVector - operator.""" + a = MFloatVector(1.5, 2, 3) + b = MFloatVector(2, -1.2, 7) + c = a-b + self.assertVecEqual(c, MFloatVector(-0.5,3.2,-4)) + + a = MFloatVector(1,-2,3) + c = -a + self.assertVecEqual(c, MFloatVector(-1,2,-3)) + + def testGet(self): + """Test the MFloatVector get() method. + """ + a = MFloatVector(1,2,3) + c = a.get() + self.assertEqual(len(c), 3) + self.assertEqual(c[0], a.x) + self.assertEqual(c[1], a.y) + self.assertEqual(c[2], a.z) + + def testLength(self): + """Test the MFloatVector length() method.""" + a = MFloatVector(1, 2, 3) + c = a.length() + self.assertEqual(c, math.sqrt(14)) + + def testNormalize(self): + """Test the MFloatVector normalize() and normal() methods.""" + a = MFloatVector(1,0.5,-1.8) + + c = a.normal() + self.assertAlmostEqual(c.length(), 1.0, 4) + + a.normalize() + self.assertAlmostEqual(a.length(), 1.0, 4) + + def testAngle(self): + """Test the MFloatVector angle() method.""" + a = MFloatVector(1,0,0) + b = MFloatVector(0,1,0) + self.assertAlmostEqual(a.angle(b), math.pi/2, 4) + + def testIsParallel(self): + """Test the MFloatVector isParallel() method.""" + a = MFloatVector(1, 2, 3) + b = MFloatVector(2, 4, 6) + c = MFloatVector(1, 4, 6) + self.assertEqual(a.isParallel(b), True) + self.assertEqual(a.isParallel(c), False) + + # Helper method to compare vectors + + def assertVecEqual(self, a, b): + """Compare MFloatVectors a and b. + """ + eps = 1E-4 + self.failIf((a-b).length()>eps, "(%s, %s, %s) != (%s, %s, %s)"%(a.x, a.y, a.z, b.x, b.y, b.z)) Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVector.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObject.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObject.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObject.py 2006-09-29 16:59:06 UTC (rev 65) @@ -0,0 +1,77 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MObject test + +import unittest +from maya.api import * + +class TestMObject(unittest.TestCase): + """Test the MObject class. + """ + + def testConstructors(self): + """Test the MObject constructors. + """ + # Standard constructor + obj = MObject() + self.assertEqual(obj.isNull(), True) + + # Copy constructor + obj2 = MObject(obj) + + def testStaticVecs(self): + """Test the MObject static members.""" + + self.assertEqual(MObject.kNullObj, MObject()) + + def testMethods(self): + """Test the MObject methods. + """ + + # Get the default perspective camera (transform node) so that we + # have a valid MObject to do some tests... + sel = MSelectionList() + MGlobal.getSelectionListByName("persp", sel) + if sel.length()!=1: + raise ValueError, "Camera 'persp' not found." + persp = MObject() + sel.getDependNode(0, persp) + + self.assertEqual(persp.isNull(), False) + self.assertEqual(persp.hasFn(MFn.kTransform), True) + self.assertEqual(persp.hasFn(MFn.kMesh), False) + self.assertEqual(persp.apiType(), MFn.kTransform) + self.assertEqual(persp.apiTypeStr(), "kTransform") + + persp2 = MObject(persp) + self.assertEqual(persp, persp2) + + # Get another valid MObject (top camera) + sel = MSelectionList() + MGlobal.getSelectionListByName("top", sel) + if sel.length()!=1: + raise ValueError, "Camera 'top' not found." + top = MObject() + sel.getDependNode(0, top) + + self.assertNotEqual(persp, top) Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObject.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py 2006-09-29 16:58:20 UTC (rev 64) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py 2006-09-29 16:59:06 UTC (rev 65) @@ -54,6 +54,13 @@ b = MObjectArray(a) self.assertEqual(a.length(), 2) + def testIteration(self): + """Test MObjectArray iteration. + """ + a = MObjectArray(5) + for obj in a: + self.assertEqual(type(obj), MObject) + def testIndexOperator(self): """Test the MObjectArray index operator. """ Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPoint.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPoint.py 2006-09-29 16:58:20 UTC (rev 64) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPoint.py 2006-09-29 16:59:06 UTC (rev 65) @@ -127,6 +127,15 @@ self.assertEqual(p[2], p.z) self.assertEqual(p[3], p.w) + p[0] = 0.5 + p[1] = 0.6 + p[2] = 0.7 + p[3] = 0.8 + self.assertEqual(p.x, 0.5) + self.assertEqual(p.y, 0.6) + self.assertEqual(p.z, 0.7) + self.assertEqual(p.w, 0.8) + def testDiv(self): """Test the MPoint / operator. """ Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-09-29 16:58:20 UTC (rev 64) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-09-29 16:59:06 UTC (rev 65) @@ -61,6 +61,13 @@ self.assertPointEqual(pnts2[1], MPoint(4,5,6,1)) self.assertPointEqual(pnts2[2], MPoint(7,8,9,1)) + def testIteration(self): + """Test MPointArray iteration. + """ + a = MPointArray(5) + for p in a: + self.assertEqual(type(p), MPoint) + def testIndexOperator(self): """Test the MPointArray index operator. """ @@ -76,7 +83,12 @@ pnts[0] = MPoint(4,5,6) self.assertPointEqual(pnts[0], MPoint(4,5,6)) - + + # For some reason the conversion from a sequence to MPoint doesn't + # work here...?! +# pnts[0] = (1,2,3) +# self.assertPointEqual(pnts[0], MPoint(1,2,3)) + def testSet(self): """Test the MPointArray set() method. """ @@ -126,6 +138,9 @@ pnts.insert(MPoint(), 1) self.assertEqual(pnts.length(), 5) + pnts.insert((1,2,3), 1) + self.assertEqual(pnts.length(), 6) + def testAppend(self): """Test the MPointArray append() method. """ Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MString.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MString.py 2006-09-29 16:58:20 UTC (rev 64) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MString.py 2006-09-29 16:59:06 UTC (rev 65) @@ -28,5 +28,7 @@ class TestMString(unittest.TestCase): def testStandardConstructor(self): + """Test the MString constructors. + """ s = MString("Spam") self.assertEqual(s.asChar(), "Spam") Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVector.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVector.py 2006-09-29 16:58:20 UTC (rev 64) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVector.py 2006-09-29 16:59:06 UTC (rev 65) @@ -124,6 +124,13 @@ self.assertEqual(v[1], v.y) self.assertEqual(v[2], v.z) + v[0] = 2.0 + v[1] = 0.5 + v[2] = -1 + self.assertEqual(v[0], 2.0) + self.assertEqual(v[1], 0.5) + self.assertEqual(v[2], -1.0) + # v = MVector(1.5, 0.2, 0.5) # self.assertEqual(v(0), v.x) # self.assertEqual(v(1), v.y) @@ -187,6 +194,10 @@ c = a*b self.assertEqual(c, 5.0) + M = MMatrix() + c = M*a + c = a*M + def testAdd(self): """Test the MVector + operator.""" a = MVector(1.5, 2, 3) @@ -246,8 +257,13 @@ def testRotateBy(self): """Test the MVector rotateBy() method.""" a = MVector(1,0,0) - print a.rotateBy([0.2, 0.5, 0.7], MTransformationMatrix.RotationOrder.kXYZ) + a.rotateBy([0.2, 0.5, 0.7], MTransformationMatrix.RotationOrder.kXYZ) + def testAngle(self): + """Test the MVector angle() method.""" + a = MVector(1,0,0) + b = MVector(0,1,0) + self.assertEqual(a.angle(b), math.pi/2) def testIsParallel(self): """Test the MVector isParallel() method.""" Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py 2006-09-29 16:59:06 UTC (rev 65) @@ -0,0 +1,199 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MVectorArray test + +import unittest +from maya.api import * +import maya._api +MVector.__repr__ = MVector.__str__ + +class TestMVectorArray(unittest.TestCase): + + def testConstructors(self): + """Test the MVectorArray constructors. + """ + # Standard constructor + vecs = MVectorArray() + self.assertEqual(vecs.length(), 0) + + # Provide an initial size + vecs = MVectorArray(8) + self.assertEqual(vecs.length(), 8) + + # Provide an initial size and default initializer + vecs = MVectorArray(6, MVector(1,2,3)) + self.assertEqual(vecs.length(), 6) + for i in range(vecs.length()): + self.assertVecEqual(vecs[i], MVector(1,2,3)) + + # Provide a list of MVectors + vecs = MVectorArray([MVector(1,2,3), MVector(4,5,6), MVector(7,8,9)]) + self.assertEqual(vecs.length(), 3) + self.assertVecEqual(vecs[0], MVector(1,2,3)) + self.assertVecEqual(vecs[1], MVector(4,5,6)) + self.assertVecEqual(vecs[2], MVector(7,8,9)) + + # Provide a list of tuples +# vecs = MVectorArray([(1,2,3), (4,5,6), (7,8,9)]) +# self.assertEqual(vecs.length(), 3) +# self.assertVecEqual(vecs[0], MVector(1,2,3)) +# self.assertVecEqual(vecs[1], MVector(4,5,6)) +# self.assertVecEqual(vecs[2], MVector(7,8,9)) + + # Copy constructor + vecs2 = MVectorArray(vecs) + self.assertEqual(vecs2.length(), 3) + self.assertVecEqual(vecs2[0], MVector(1,2,3)) + self.assertVecEqual(vecs2[1], MVector(4,5,6)) + self.assertVecEqual(vecs2[2], MVector(7,8,9)) + + def testIteration(self): + """Test MVectorArray iteration. + """ + a = MVectorArray(5) + for v in a: + self.assertEqual(type(v), maya._api.MVector) + + def testIndexOperator(self): + """Test the MVectorArray index operator. + """ + + vecs = MVectorArray(3) + vecs[1].x = 1 + vecs[1].y = 2 + vecs[1].z = 3 + self.assertEqual(vecs[1].x, 1) + self.assertEqual(vecs[1].y, 2) + self.assertEqual(vecs[1].z, 3) + self.assertVecEqual(vecs[1], MVector(1,2,3)) + + vecs[0] = MVector(4,5,6) + self.assertVecEqual(vecs[0], MVector(4,5,6)) + + # For some reason the conversion from a sequence to MVector doesn't + # work here...?! +# vecs[0] = (1,2,3) +# self.assertVecEqual(vecs[0], MVector(1,2,3)) + + def testSet(self): + """Test the MVectorArray set() method. + """ + + vecs = MVectorArray(3) + vecs.set(MVector(1,2,3), 1) + self.assertVecEqual(vecs[1], MVector(1,2,3)) + + vecs.set([3,2,1], 2) + self.assertVecEqual(vecs[2], MVector(3,2,1)) + + def testLength(self): + """Test the MVectorArray length()/setLength() methods. + """ + + vecs = MVectorArray() + self.assertEqual(vecs.length(), 0) + + vecs.setLength(5) + self.assertEqual(vecs.length(), 5) + + vecs.setLength(3) + self.assertEqual(vecs.length(), 3) + + def testRemove(self): + """Test the MVectorArray remove() method. + """ + + vecs = MVectorArray(5) + + vecs.remove(2) + self.assertEqual(vecs.length(), 4) + + def testInsert(self): + """Test the MVectorArray insert() method. + """ + + vecs = MVectorArray(4) + + vecs.insert(MVector(), 1) + self.assertEqual(vecs.length(), 5) + + vecs.insert((1,2,3), 2) + self.assertEqual(vecs.length(), 6) + + def testAppend(self): + """Test the MVectorArray append() method. + """ + + vecs = MVectorArray(4) + + vecs.append(MVector()) + self.assertEqual(vecs.length(), 5) + + def testCopy(self): + """Test the MVectorArray copy() method. + """ + + src = MVectorArray(3) + src[0] = MVector(1,2,3) + src[1] = MVector(4,5,6) + src[2] = MVector(7,8,9) + + vecs = MVectorArray() + vecs.copy(src) + self.assertEqual(vecs.length(), 3) + self.assertVecEqual(vecs[0], MVector(1,2,3)) + self.assertVecEqual(vecs[1], MVector(4,5,6)) + self.assertVecEqual(vecs[2], MVector(7,8,9)) + + def testClear(self): + """Test the MVectorArray clear() method. + """ + + vecs = MVectorArray(4) + self.assertEqual(vecs.length(), 4) + vecs.clear() + self.assertEqual(vecs.length(), 0) + + def testGet(self): + """Test the MVectorArray get() method. + """ + + vecs = MVectorArray(3) + vecs[0] = MVector(1,2,3) + vecs[1] = MVector(4,5,6) + vecs[2] = MVector(7,8,9) + + v = vecs.get() + self.assertEqual(v, [(1.0,2.0,3.0), (4.0,5.0,6.0), (7.0,8.0,9.0)]) + + v = [] + vecs.get(v) + self.assertEqual(v, [(1.0,2.0,3.0), (4.0,5.0,6.0), (7.0,8.0,9.0)]) + + # Helper method to compare vectors + + def assertVecEqual(self, a, b): + """Compare MVectors a and b. + """ + eps = 1E-8 + self.failIf((a-b).length()>eps, "(%s, %s, %s) != (%s, %s, %s)"%(a.x, a.y, a.z, b.x, b.y, b.z)) Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-09-29 16:58:20 UTC (rev 64) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-09-29 16:59:06 UTC (rev 65) @@ -21,14 +21,18 @@ # ***** END LICENSE BLOCK ***** from MAngle import TestMAngle +from MBoundingBox import TestMBoundingBox from MColor import TestMColor from MDGMessage import TestMDGMessage from MFloatMatrix import TestMFloatMatrix +from MFloatPoint import TestMFloatPoint +from MFloatVector import TestMFloatVector from MFn import TestMFn from MFnBase import TestMFnBase from MGlobal import TestMGlobal from MImage import TestMImage from MMatrix import TestMMatrix +from MObject import TestMObject from MObjectArray import TestMObjectArray from MStatus import TestMStatus from MString import TestMString @@ -37,3 +41,4 @@ from MPointArray import TestMPointArray from MUserEventMessage import TestMUserEventMessage from MVector import TestMVector +from MVectorArray import TestMVectorArray This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-01 16:37:50
|
Revision: 70 http://svn.sourceforge.net/cgkit/?rev=70&view=rev Author: mbaas Date: 2006-10-01 09:37:17 -0700 (Sun, 01 Oct 2006) Log Message: ----------- Added more unit tests. Modified Paths: -------------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py Added Paths: ----------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColorArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDagPathArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDoubleArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPointArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVectorArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MIntArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStringArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUintArray.py Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColorArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColorArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColorArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -0,0 +1,226 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MColorArray test + +import unittest +from maya.api import * +import maya._api +MColor.__repr__ = MColor.__str__ + +class TestMColorArray(unittest.TestCase): + + def testConstructors(self): + """Test the MColorArray constructors. + """ + # Standard constructor + cols = MColorArray() + self.assertEqual(cols.length(), 0) + + # Provide an initial size and default initializer + cols = MColorArray(6, MColor(0.1,0.2,0.3)) + self.assertEqual(cols.length(), 6) + for i in range(cols.length()): + self.assertColEqual(cols[i], MColor(0.1,0.2,0.3)) + + # Provide a list of MColors + cols = MColorArray([MColor(0.1,0.2,0.3), MColor(0.4,0.5,0.6), MColor(0.7,0.8,0.9)]) + self.assertEqual(cols.length(), 3) + self.assertColEqual(cols[0], MColor(0.1,0.2,0.3)) + self.assertColEqual(cols[1], MColor(0.4,0.5,0.6)) + self.assertColEqual(cols[2], MColor(0.7,0.8,0.9)) + + # Copy constructor + cols2 = MColorArray(cols) + self.assertEqual(cols2.length(), 3) + self.assertColEqual(cols2[0], MColor(0.1,0.2,0.3)) + self.assertColEqual(cols2[1], MColor(0.4,0.5,0.6)) + self.assertColEqual(cols2[2], MColor(0.7,0.8,0.9)) + + def testIteration(self): + """Test MColorArray iteration. + """ + a = MColorArray(5, MColor()) + self.assertEqual(len(a), 5) + for v in a: + self.assertEqual(type(v), maya._api.MColor) + + def testStr(self): + """Test MColorArray __str__. + """ + a = MColorArray(2, MColor()) + self.assertEqual(str(a)[0], "[") + + def testIndexOperator(self): + """Test the MColorArray index operator. + """ + + cols = MColorArray(3, MColor()) + cols[1].r = 0.1 + cols[1].g = 0.2 + cols[1].b = 0.3 + self.assertAlmostEqual(cols[1].r, 0.1, 4) + self.assertAlmostEqual(cols[1].g, 0.2, 4) + self.assertAlmostEqual(cols[1].b, 0.3, 4) + self.assertColEqual(cols[1], MColor(0.1,0.2,0.3)) + + cols[0] = MColor(0.4,0.5,0.6) + self.assertColEqual(cols[0], MColor(0.4,0.5,0.6)) + + def testSet(self): + """Test the MColorArray set() method. + """ + + cols = MColorArray(3, MColor()) + cols.set(MColor(0.1,0.2,0.3), 1) + self.assertColEqual(cols[1], MColor(0.1,0.2,0.3)) + + cols.set([0.3,0.2,0.1], 2) + self.assertColEqual(cols[2], MColor(0.3,0.2,0.1)) + + cols.set(1, 0.4, 0.5, 0.6) + self.assertColEqual(cols[1], MColor(0.4,0.5,0.6)) + cols.set(1, 0.5, 0.6, 0.7, 0.8) + self.assertColEqual(cols[1], MColor(0.5,0.6,0.7,0.8)) + + cols.set([(0.1,0.2,0.3,1), (0.2,0.3,0.4,1), (0.3,0.4,0.5,1)]) + self.assertColEqual(cols[0], MColor(0.1,0.2,0.3)) + self.assertColEqual(cols[1], MColor(0.2,0.3,0.4)) + self.assertColEqual(cols[2], MColor(0.3,0.4,0.5)) + + def testLength(self): + """Test the MColorArray length()/setLength() methods. + """ + + cols = MColorArray() + self.assertEqual(cols.length(), 0) + + cols.setLength(5) + self.assertEqual(cols.length(), 5) + + cols.setLength(3) + self.assertEqual(cols.length(), 3) + + def testRemove(self): + """Test the MColorArray remove() method. + """ + + cols = MColorArray(5, MColor()) + + cols.remove(2) + self.assertEqual(cols.length(), 4) + + def testInsert(self): + """Test the MColorArray insert() method. + """ + + cols = MColorArray(4, MColor()) + + cols.insert(MColor(), 1) + self.assertEqual(cols.length(), 5) + + cols.insert((0.1,0.2,0.3), 2) + self.assertEqual(cols.length(), 6) + + def testAppend(self): + """Test the MColorArray append() method. + """ + + cols = MColorArray(4, MColor()) + + cols.append(MColor()) + self.assertEqual(cols.length(), 5) + + cols.append((0.1,0.2,0.3)) + self.assertEqual(cols.length(), 6) + + cols.append((0.1,0.2,0.3,1)) + self.assertEqual(cols.length(), 7) + + def testClear(self): + """Test the MColorArray clear() method. + """ + + cols = MColorArray(4, MColor()) + self.assertEqual(cols.length(), 4) + cols.clear() + self.assertEqual(cols.length(), 0) + + def testGet(self): + """Test the MColorArray get() method. + """ + + cols = MColorArray(3, MColor()) + cols[0] = MColor(0.1,0.2,0.3) + cols[1] = MColor(0.4,0.5,0.6) + cols[2] = MColor(0.7,0.8,0.9) + + v = cols.get() + self.assertAlmostEqual(v[0][0], 0.1, 4) + self.assertAlmostEqual(v[0][1], 0.2, 4) + self.assertAlmostEqual(v[0][2], 0.3, 4) + self.assertAlmostEqual(v[0][3], 1.0, 4) + self.assertAlmostEqual(v[1][0], 0.4, 4) + self.assertAlmostEqual(v[1][1], 0.5, 4) + self.assertAlmostEqual(v[1][2], 0.6, 4) + self.assertAlmostEqual(v[1][3], 1.0, 4) + self.assertAlmostEqual(v[2][0], 0.7, 4) + self.assertAlmostEqual(v[2][1], 0.8, 4) + self.assertAlmostEqual(v[2][2], 0.9, 4) + self.assertAlmostEqual(v[2][3], 1.0, 4) + + v = [] + cols.get(v) + self.assertAlmostEqual(v[0][0], 0.1, 4) + self.assertAlmostEqual(v[0][1], 0.2, 4) + self.assertAlmostEqual(v[0][2], 0.3, 4) + self.assertAlmostEqual(v[0][3], 1.0, 4) + self.assertAlmostEqual(v[1][0], 0.4, 4) + self.assertAlmostEqual(v[1][1], 0.5, 4) + self.assertAlmostEqual(v[1][2], 0.6, 4) + self.assertAlmostEqual(v[1][3], 1.0, 4) + self.assertAlmostEqual(v[2][0], 0.7, 4) + self.assertAlmostEqual(v[2][1], 0.8, 4) + self.assertAlmostEqual(v[2][2], 0.9, 4) + self.assertAlmostEqual(v[2][3], 1.0, 4) + + def testSizeIncrement(self): + """Test the MColorArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MColorArray(3, MColor()) + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) + + # Helper method to compare colors + + def assertColEqual(self, a, b): + """Compare MColors a and b. + """ + eps = 1E-5 + self.failIf((a.r-b.r)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.r, a.g, a.b, a.a, b.r, b.g, b.b, b.a)) + self.failIf((a.g-b.g)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.r, a.g, a.b, a.a, b.r, b.g, b.b, b.a)) + self.failIf((a.b-b.b)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.r, a.g, a.b, a.a, b.r, b.g, b.b, b.a)) + self.failIf((a.a-b.a)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.r, a.g, a.b, a.a, b.r, b.g, b.b, b.a)) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColorArray.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDagPathArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDagPathArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDagPathArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -0,0 +1,116 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MDagPathArray test + +import unittest +from maya.api import * + +class TestMDagPathArray(unittest.TestCase): + + def testConstructors(self): + """Test the MDagPathArray constructors. + """ + # Standard constructor + a = MDagPathArray() + self.assertEqual(a.length(), 0) + + def testStr(self): + """Test MDagPathArray __str__. + """ + a = MDagPathArray() + self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MDagPathArray iteration. + """ + a = MDagPathArray() + a.setLength(5) + self.assertEqual(len(a), 5) + for s in a: + self.assertEqual(type(s), MDagPath) + + def testIndexOperator(self): + """Test the MDagPathArray index operator. + """ + + a = MDagPathArray() + a.setLength(3) + + s = a[0] + a[1] = s + + def testLength(self): + """Test the MDagPathArray length()/setLength() methods. + """ + + a = MDagPathArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + # The following would make Maya crash sooner or later. + # (see the comment in the MObjectArray unit test) +# a.setLength(3) +# self.assertEqual(a.length(), 3) + + def testRemove(self): + """Test the MDagPathArray remove() method. + """ + + a = MDagPathArray() + a.setLength(5) + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the MDagPathArray insert() method. + """ + + a = MDagPathArray() + a.setLength(4) + + a.insert(MDagPath(), 1) + self.assertEqual(a.length(), 5) + + def testAppend(self): + """Test the MDagPathArray append() method. + """ + + a = MDagPathArray() + a.setLength(4) + + a.append(MDagPath()) + self.assertEqual(a.length(), 5) + + def testClear(self): + """Test the MDagPathArray clear() method. + """ + + a = MDagPathArray() + a.setLength(4) + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDagPathArray.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDoubleArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDoubleArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDoubleArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -0,0 +1,185 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MDoubleArray test + +import unittest +from maya.api import * + +class TestMDoubleArray(unittest.TestCase): + + def testConstructors(self): + """Test the MDoubleArray constructors. + """ + # Standard constructor + a = MDoubleArray() + self.assertEqual(a.length(), 0) + + # Provide an initial size + a = MDoubleArray(8) + self.assertEqual(a.length(), 8) + for i in range(a.length()): + self.assertEqual(type(a[i]), float) + + # Provide an initial size and default initializer + a = MDoubleArray(6, 12.5) + self.assertEqual(a.length(), 6) + for i in range(a.length()): + self.assertEqual(a[i], 12.5) + + # Provide a list of floats + a = MDoubleArray([1.5,2,3]) + self.assertEqual(a.length(), 3) + self.assertEqual(a[0], 1.5) + self.assertEqual(a[1], 2.0) + self.assertEqual(a[2], 3.0) + + # Copy constructor + a2 = MDoubleArray(a) + self.assertEqual(a2.length(), 3) + self.assertEqual(a2[0], 1.5) + self.assertEqual(a2[1], 2.0) + self.assertEqual(a2[2], 3.0) + + def testStr(self): + """Test MDoubleArray __str__. + """ + a = MDoubleArray(3) + self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MDoubleArray iteration. + """ + a = MDoubleArray(5) + self.assertEqual(len(a), 5) + for v in a: + self.assertEqual(v, 0) + + def testIndexOperator(self): + """Test the MDoubleArray index operator. + """ + + a = MDoubleArray(3) + self.assertEqual(a[0], 0) + + a[0] = 1.5 + self.assertEqual(a[0], 1.5) + + def testSet(self): + """Test the MDoubleArray set() method. + """ + + a = MDoubleArray(3) + a.set(1.5, 1) + self.assertEqual(a[1], 1.5) + + def testLength(self): + """Test the MDoubleArray length()/setLength() methods. + """ + + a = MDoubleArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + a.setLength(3) + self.assertEqual(a.length(), 3) + + def testRemove(self): + """Test the MDoubleArray remove() method. + """ + + a = MDoubleArray(5) + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the MDoubleArray insert() method. + """ + + a = MDoubleArray(4) + + a.insert(1.5, 1) + self.assertEqual(a.length(), 5) + + def testAppend(self): + """Test the MDoubleArray append() method. + """ + + a = MDoubleArray(4) + + a.append(1.5) + self.assertEqual(a.length(), 5) + + def testCopy(self): + """Test the MDoubleArray copy() method. + """ + + src = MDoubleArray(3) + src[0] = 1.5 + src[1] = 2 + src[2] = 3 + + a = MDoubleArray() + a.copy(src) + self.assertEqual(a.length(), 3) + self.assertEqual(a[0], 1.5) + self.assertEqual(a[1], 2.0) + self.assertEqual(a[2], 3.0) + + def testClear(self): + """Test the MDoubleArray clear() method. + """ + + a = MDoubleArray(4) + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + + def testGet(self): + """Test the MDoubleArray get() method. + """ + + a = MDoubleArray(3) + a[0] = 1.5 + a[1] = 2 + a[2] = 3 + + v = a.get() + self.assertEqual(v, [1.5, 2.0, 3.0]) + + p = [] + pnts.get(p) + self.assertEqual(v, [1.5, 2.0, 3.0]) + + def testSizeIncrement(self): + """Test the MDoubleArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MDoubleArray(3) + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDoubleArray.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -0,0 +1,185 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MFloatArray test + +import unittest +from maya.api import * + +class TestMFloatArray(unittest.TestCase): + + def testConstructors(self): + """Test the MFloatArray constructors. + """ + # Standard constructor + a = MFloatArray() + self.assertEqual(a.length(), 0) + + # Provide an initial size + a = MFloatArray(8) + self.assertEqual(a.length(), 8) + for i in range(a.length()): + self.assertEqual(type(a[i]), float) + + # Provide an initial size and default initializer + a = MFloatArray(6, 12.5) + self.assertEqual(a.length(), 6) + for i in range(a.length()): + self.assertEqual(a[i], 12.5) + + # Provide a list of floats + a = MFloatArray([1.5,2,3]) + self.assertEqual(a.length(), 3) + self.assertEqual(a[0], 1.5) + self.assertEqual(a[1], 2.0) + self.assertEqual(a[2], 3.0) + + # Copy constructor + a2 = MFloatArray(a) + self.assertEqual(a2.length(), 3) + self.assertEqual(a2[0], 1.5) + self.assertEqual(a2[1], 2.0) + self.assertEqual(a2[2], 3.0) + + def testStr(self): + """Test MFloatArray __str__. + """ + a = MFloatArray(3) + self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MFloatArray iteration. + """ + a = MFloatArray(5) + self.assertEqual(len(a), 5) + for v in a: + self.assertEqual(v, 0) + + def testIndexOperator(self): + """Test the MFloatArray index operator. + """ + + a = MFloatArray(3) + self.assertEqual(a[0], 0) + + a[0] = 1.5 + self.assertEqual(a[0], 1.5) + + def testSet(self): + """Test the MFloatArray set() method. + """ + + a = MFloatArray(3) + a.set(1.5, 1) + self.assertEqual(a[1], 1.5) + + def testLength(self): + """Test the MFloatArray length()/setLength() methods. + """ + + a = MFloatArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + a.setLength(3) + self.assertEqual(a.length(), 3) + + def testRemove(self): + """Test the MFloatArray remove() method. + """ + + a = MFloatArray(5) + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the MFloatArray insert() method. + """ + + a = MFloatArray(4) + + a.insert(1.5, 1) + self.assertEqual(a.length(), 5) + + def testAppend(self): + """Test the MFloatArray append() method. + """ + + a = MFloatArray(4) + + a.append(1.5) + self.assertEqual(a.length(), 5) + + def testCopy(self): + """Test the MFloatArray copy() method. + """ + + src = MFloatArray(3) + src[0] = 1.5 + src[1] = 2 + src[2] = 3 + + a = MFloatArray() + a.copy(src) + self.assertEqual(a.length(), 3) + self.assertEqual(a[0], 1.5) + self.assertEqual(a[1], 2.0) + self.assertEqual(a[2], 3.0) + + def testClear(self): + """Test the MFloatArray clear() method. + """ + + a = MFloatArray(4) + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + + def testGet(self): + """Test the MFloatArray get() method. + """ + + a = MFloatArray(3) + a[0] = 1.5 + a[1] = 2 + a[2] = 3 + + v = a.get() + self.assertEqual(v, [1.5, 2.0, 3.0]) + + p = [] + pnts.get(p) + self.assertEqual(v, [1.5, 2.0, 3.0]) + + def testSizeIncrement(self): + """Test the MFloatArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MFloatArray(3) + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatArray.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPointArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPointArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPointArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -0,0 +1,213 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MFloatPointArray test + +import unittest +from maya.api import * +MFloatPoint.__repr__ = MFloatPoint.__str__ + +class TestMFloatPointArray(unittest.TestCase): + + def testConstructors(self): + """Test the MFloatPointArray constructors. + """ + # Standard constructor + pnts = MFloatPointArray() + self.assertEqual(pnts.length(), 0) + + # Provide an initial size + pnts = MFloatPointArray(8) + self.assertEqual(pnts.length(), 8) + for i in range(pnts.length()): + self.assertPointEqual(pnts[i], MFloatPoint(0,0,0,1)) + + # Provide an initial size and default initializer + pnts = MFloatPointArray(6, MFloatPoint(1,2,3)) + self.assertEqual(pnts.length(), 6) + for i in range(pnts.length()): + self.assertPointEqual(pnts[i], MFloatPoint(1,2,3,1)) + + # Provide a list of MFloatPoints + pnts = MFloatPointArray([MFloatPoint(1,2,3), MFloatPoint(4,5,6), MFloatPoint(7,8,9)]) + self.assertEqual(pnts.length(), 3) + self.assertPointEqual(pnts[0], MFloatPoint(1,2,3,1)) + self.assertPointEqual(pnts[1], MFloatPoint(4,5,6,1)) + self.assertPointEqual(pnts[2], MFloatPoint(7,8,9,1)) + + # Copy constructor + pnts2 = MFloatPointArray(pnts) + self.assertEqual(pnts2.length(), 3) + self.assertPointEqual(pnts2[0], MFloatPoint(1,2,3,1)) + self.assertPointEqual(pnts2[1], MFloatPoint(4,5,6,1)) + self.assertPointEqual(pnts2[2], MFloatPoint(7,8,9,1)) + + def testStr(self): + """Test MFloatPointArray __str__. + """ + a = MFloatPointArray(2) + self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MFloatPointArray iteration. + """ + a = MFloatPointArray(5) + self.assertEqual(len(a), 5) + for p in a: + self.assertEqual(type(p), MFloatPoint) + + def testIndexOperator(self): + """Test the MFloatPointArray index operator. + """ + + pnts = MFloatPointArray(3) + pnts[1].x = 1 + pnts[1].y = 2 + pnts[1].z = 3 + self.assertEqual(pnts[1].x, 1) + self.assertEqual(pnts[1].y, 2) + self.assertEqual(pnts[1].z, 3) + self.assertPointEqual(pnts[1], MFloatPoint(1,2,3)) + + pnts[0] = MFloatPoint(4,5,6) + self.assertPointEqual(pnts[0], MFloatPoint(4,5,6)) + + # For some reason the conversion from a sequence to MFloatPoint doesn't + # work here...?! +# pnts[0] = (1,2,3) +# self.assertPointEqual(pnts[0], MFloatPoint(1,2,3)) + + def testSet(self): + """Test the MFloatPointArray set() method. + """ + + pnts = MFloatPointArray(3) + pnts.set(MFloatPoint(1,2,3), 1) + self.assertPointEqual(pnts[1], MFloatPoint(1,2,3)) + + pnts.set(0, 5, 6) + self.assertPointEqual(pnts[0], MFloatPoint(5,6,0,1)) + pnts.set(0, 1, 2, 3) + self.assertPointEqual(pnts[0], MFloatPoint(1,2,3,1)) + pnts.set(0, 4, 5, 6, 7) + self.assertPointEqual(pnts[0], MFloatPoint(4,5,6,7)) + + pnts.set([3,2,1,1], 2) + self.assertPointEqual(pnts[2], MFloatPoint(3,2,1,1)) + + def testLength(self): + """Test the MFloatPointArray length()/setLength() methods. + """ + + pnts = MFloatPointArray() + self.assertEqual(pnts.length(), 0) + + pnts.setLength(5) + self.assertEqual(pnts.length(), 5) + + pnts.setLength(3) + self.assertEqual(pnts.length(), 3) + + def testRemove(self): + """Test the MFloatPointArray remove() method. + """ + + pnts = MFloatPointArray(5) + + pnts.remove(2) + self.assertEqual(pnts.length(), 4) + + def testInsert(self): + """Test the MFloatPointArray insert() method. + """ + + pnts = MFloatPointArray(4) + + pnts.insert(MFloatPoint(), 1) + self.assertEqual(pnts.length(), 5) + + pnts.insert((1,2,3), 1) + self.assertEqual(pnts.length(), 6) + + def testAppend(self): + """Test the MFloatPointArray append() method. + """ + + pnts = MFloatPointArray(4) + + pnts.append(MFloatPoint()) + self.assertEqual(pnts.length(), 5) + + pnts.append(1,2,3) + self.assertEqual(pnts.length(), 6) + + def testCopy(self): + """Test the MFloatPointArray copy() method. + """ + + src = MFloatPointArray(3) + src[0] = MFloatPoint(1,2,3) + src[1] = MFloatPoint(4,5,6) + src[2] = MFloatPoint(7,8,9) + + pnts = MFloatPointArray() + pnts.copy(src) + self.assertEqual(pnts.length(), 3) + self.assertPointEqual(pnts[0], MFloatPoint(1,2,3)) + self.assertPointEqual(pnts[1], MFloatPoint(4,5,6)) + self.assertPointEqual(pnts[2], MFloatPoint(7,8,9)) + + def testClear(self): + """Test the MFloatPointArray clear() method. + """ + + pnts = MFloatPointArray(4) + self.assertEqual(pnts.length(), 4) + pnts.clear() + self.assertEqual(pnts.length(), 0) + + def testGet(self): + """Test the MFloatPointArray get() method. + """ + + pnts = MFloatPointArray(3) + pnts[0] = MFloatPoint(1,2,3) + pnts[1] = MFloatPoint(4,5,6) + pnts[2] = MFloatPoint(7,8,9) + + p = pnts.get() + self.assertEqual(p, [(1.0,2.0,3.0,1.0), (4.0,5.0,6.0,1.0), (7.0,8.0,9.0,1.0)]) + + p = [] + pnts.get(p) + self.assertEqual(p, [(1.0,2.0,3.0,1.0), (4.0,5.0,6.0,1.0), (7.0,8.0,9.0,1.0)]) + + # Helper method to compare points + + def assertPointEqual(self, a, b): + """Compare MFloatPoints a and b. + """ + eps = 1E-5 + self.failIf((a.x-b.x)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.x, a.y, a.z, a.w, b.x, b.y, b.z, b.w)) + self.failIf((a.y-b.y)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.x, a.y, a.z, a.w, b.x, b.y, b.z, b.w)) + self.failIf((a.z-b.z)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.x, a.y, a.z, a.w, b.x, b.y, b.z, b.w)) + self.failIf((a.w-b.w)>eps, "(%s, %s, %s, %s) != (%s, %s, %s, %s)"%(a.x, a.y, a.z, a.w, b.x, b.y, b.z, b.w)) Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPointArray.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVectorArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVectorArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVectorArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -0,0 +1,206 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MFloatVectorArray test + +import unittest +from maya.api import * +import maya._api +MFloatVector.__repr__ = MFloatVector.__str__ + +class TestMFloatVectorArray(unittest.TestCase): + + def testConstructors(self): + """Test the MFloatVectorArray constructors. + """ + # Standard constructor + vecs = MFloatVectorArray() + self.assertEqual(vecs.length(), 0) + + # Provide an initial size + vecs = MFloatVectorArray(8) + self.assertEqual(vecs.length(), 8) + + # Provide an initial size and default initializer + vecs = MFloatVectorArray(6, MFloatVector(1,2,3)) + self.assertEqual(vecs.length(), 6) + for i in range(vecs.length()): + self.assertVecEqual(vecs[i], MFloatVector(1,2,3)) + + # Provide a list of MFloatVectors + vecs = MFloatVectorArray([MFloatVector(1,2,3), MFloatVector(4,5,6), MFloatVector(7,8,9)]) + self.assertEqual(vecs.length(), 3) + self.assertVecEqual(vecs[0], MFloatVector(1,2,3)) + self.assertVecEqual(vecs[1], MFloatVector(4,5,6)) + self.assertVecEqual(vecs[2], MFloatVector(7,8,9)) + + # Provide a list of tuples +# vecs = MFloatVectorArray([(1,2,3), (4,5,6), (7,8,9)]) +# self.assertEqual(vecs.length(), 3) +# self.assertVecEqual(vecs[0], MFloatVector(1,2,3)) +# self.assertVecEqual(vecs[1], MFloatVector(4,5,6)) +# self.assertVecEqual(vecs[2], MFloatVector(7,8,9)) + + # Copy constructor + vecs2 = MFloatVectorArray(vecs) + self.assertEqual(vecs2.length(), 3) + self.assertVecEqual(vecs2[0], MFloatVector(1,2,3)) + self.assertVecEqual(vecs2[1], MFloatVector(4,5,6)) + self.assertVecEqual(vecs2[2], MFloatVector(7,8,9)) + + def testStr(self): + """Test MFloatVectorArray __str__. + """ + a = MFloatVectorArray(2) + self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MFloatVectorArray iteration. + """ + a = MFloatVectorArray(5) + self.assertEqual(len(a), 5) + for v in a: + self.assertEqual(type(v), maya._api.MFloatVector) + + def testIndexOperator(self): + """Test the MFloatVectorArray index operator. + """ + + vecs = MFloatVectorArray(3) + vecs[1].x = 1 + vecs[1].y = 2 + vecs[1].z = 3 + self.assertEqual(vecs[1].x, 1) + self.assertEqual(vecs[1].y, 2) + self.assertEqual(vecs[1].z, 3) + self.assertVecEqual(vecs[1], MFloatVector(1,2,3)) + + vecs[0] = MFloatVector(4,5,6) + self.assertVecEqual(vecs[0], MFloatVector(4,5,6)) + + # For some reason the conversion from a sequence to MFloatVector doesn't + # work here...?! +# vecs[0] = (1,2,3) +# self.assertVecEqual(vecs[0], MFloatVector(1,2,3)) + + def testSet(self): + """Test the MFloatVectorArray set() method. + """ + + vecs = MFloatVectorArray(3) + vecs.set(MFloatVector(1,2,3), 1) + self.assertVecEqual(vecs[1], MFloatVector(1,2,3)) + + vecs.set([3,2,1], 2) + self.assertVecEqual(vecs[2], MFloatVector(3,2,1)) + + def testLength(self): + """Test the MFloatVectorArray length()/setLength() methods. + """ + + vecs = MFloatVectorArray() + self.assertEqual(vecs.length(), 0) + + vecs.setLength(5) + self.assertEqual(vecs.length(), 5) + + vecs.setLength(3) + self.assertEqual(vecs.length(), 3) + + def testRemove(self): + """Test the MFloatVectorArray remove() method. + """ + + vecs = MFloatVectorArray(5) + + vecs.remove(2) + self.assertEqual(vecs.length(), 4) + + def testInsert(self): + """Test the MFloatVectorArray insert() method. + """ + + vecs = MFloatVectorArray(4) + + vecs.insert(MFloatVector(), 1) + self.assertEqual(vecs.length(), 5) + + vecs.insert((1,2,3), 2) + self.assertEqual(vecs.length(), 6) + + def testAppend(self): + """Test the MFloatVectorArray append() method. + """ + + vecs = MFloatVectorArray(4) + + vecs.append(MFloatVector()) + self.assertEqual(vecs.length(), 5) + + def testCopy(self): + """Test the MFloatVectorArray copy() method. + """ + + src = MFloatVectorArray(3) + src[0] = MFloatVector(1,2,3) + src[1] = MFloatVector(4,5,6) + src[2] = MFloatVector(7,8,9) + + vecs = MFloatVectorArray() + vecs.copy(src) + self.assertEqual(vecs.length(), 3) + self.assertVecEqual(vecs[0], MFloatVector(1,2,3)) + self.assertVecEqual(vecs[1], MFloatVector(4,5,6)) + self.assertVecEqual(vecs[2], MFloatVector(7,8,9)) + + def testClear(self): + """Test the MFloatVectorArray clear() method. + """ + + vecs = MFloatVectorArray(4) + self.assertEqual(vecs.length(), 4) + vecs.clear() + self.assertEqual(vecs.length(), 0) + + def testGet(self): + """Test the MFloatVectorArray get() method. + """ + + vecs = MFloatVectorArray(3) + vecs[0] = MFloatVector(1,2,3) + vecs[1] = MFloatVector(4,5,6) + vecs[2] = MFloatVector(7,8,9) + + v = vecs.get() + self.assertEqual(v, [(1.0,2.0,3.0), (4.0,5.0,6.0), (7.0,8.0,9.0)]) + + v = [] + vecs.get(v) + self.assertEqual(v, [(1.0,2.0,3.0), (4.0,5.0,6.0), (7.0,8.0,9.0)]) + + # Helper method to compare vectors + + def assertVecEqual(self, a, b): + """Compare MFloatVectors a and b. + """ + eps = 1E-5 + self.failIf((a-b).length()>eps, "(%s, %s, %s) != (%s, %s, %s)"%(a.x, a.y, a.z, b.x, b.y, b.z)) Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVectorArray.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MIntArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MIntArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MIntArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -0,0 +1,185 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MIntArray test + +import unittest +from maya.api import * + +class TestMIntArray(unittest.TestCase): + + def testConstructors(self): + """Test the MIntArray constructors. + """ + # Standard constructor + a = MIntArray() + self.assertEqual(a.length(), 0) + + # Provide an initial size + a = MIntArray(8) + self.assertEqual(a.length(), 8) + for i in range(a.length()): + self.assertEqual(type(a[i]), int) + + # Provide an initial size and default initializer + a = MIntArray(6, 12) + self.assertEqual(a.length(), 6) + for i in range(a.length()): + self.assertEqual(a[i], 12) + + # Provide a list of floats + a = MIntArray([1,2,3]) + self.assertEqual(a.length(), 3) + self.assertEqual(a[0], 1) + self.assertEqual(a[1], 2) + self.assertEqual(a[2], 3) + + # Copy constructor + a2 = MIntArray(a) + self.assertEqual(a2.length(), 3) + self.assertEqual(a2[0], 1) + self.assertEqual(a2[1], 2) + self.assertEqual(a2[2], 3) + + def testStr(self): + """Test MIntArray __str__. + """ + a = MIntArray(2) + self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MIntArray iteration. + """ + a = MIntArray(5) + self.assertEqual(len(a), 5) + for v in a: + self.assertEqual(v, 0) + + def testIndexOperator(self): + """Test the MIntArray index operator. + """ + + a = MIntArray(3) + self.assertEqual(a[0], 0) + + a[0] = 1 + self.assertEqual(a[0], 1) + + def testSet(self): + """Test the MIntArray set() method. + """ + + a = MIntArray(3) + a.set(17, 1) + self.assertEqual(a[1], 17) + + def testLength(self): + """Test the MIntArray length()/setLength() methods. + """ + + a = MIntArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + a.setLength(3) + self.assertEqual(a.length(), 3) + + def testRemove(self): + """Test the MIntArray remove() method. + """ + + a = MIntArray(5) + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the MIntArray insert() method. + """ + + a = MIntArray(4) + + a.insert(17, 1) + self.assertEqual(a.length(), 5) + + def testAppend(self): + """Test the MIntArray append() method. + """ + + a = MIntArray(4) + + a.append(17) + self.assertEqual(a.length(), 5) + + def testCopy(self): + """Test the MIntArray copy() method. + """ + + src = MIntArray(3) + src[0] = 1 + src[1] = 2 + src[2] = 3 + + a = MIntArray() + a.copy(src) + self.assertEqual(a.length(), 3) + self.assertEqual(a[0], 1) + self.assertEqual(a[1], 2) + self.assertEqual(a[2], 3) + + def testClear(self): + """Test the MIntArray clear() method. + """ + + a = MIntArray(4) + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + + def testGet(self): + """Test the MIntArray get() method. + """ + + a = MIntArray(3) + a[0] = 1 + a[1] = 2 + a[2] = 3 + + v = a.get() + self.assertEqual(v, [1, 2, 3]) + + p = [] + pnts.get(p) + self.assertEqual(v, [1, 2, 3]) + + def testSizeIncrement(self): + """Test the MIntArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MIntArray(3) + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MIntArray.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py 2006-10-01 16:35:54 UTC (rev 69) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -54,10 +54,17 @@ b = MObjectArray(a) self.assertEqual(a.length(), 2) + def testStr(self): + """Test MObjectArray __str__. + """ + a = MObjectArray(2) + self.assertEqual(str(a)[0], "[") + def testIteration(self): """Test MObjectArray iteration. """ a = MObjectArray(5) + self.assertEqual(len(a), 5) for obj in a: self.assertEqual(type(obj), MObject) Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-10-01 16:35:54 UTC (rev 69) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -61,10 +61,17 @@ self.assertPointEqual(pnts2[1], MPoint(4,5,6,1)) self.assertPointEqual(pnts2[2], MPoint(7,8,9,1)) + def testStr(self): + """Test MPointArray __str__. + """ + a = MPointArray(2) + self.assertEqual(str(a)[0], "[") + def testIteration(self): """Test MPointArray iteration. """ a = MPointArray(5) + self.assertEqual(len(a), 5) for p in a: self.assertEqual(type(p), MPoint) Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStringArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStringArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStringArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -0,0 +1,180 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MStringArray test + +import unittest +from maya.api import * + +class TestMStringArray(unittest.TestCase): + + def testConstructors(self): + """Test the MStringArray constructors. + """ + # Standard constructor + a = MStringArray() + self.assertEqual(a.length(), 0) + + # Provide an initial size and default initializer + a = MStringArray(6, "") + self.assertEqual(a.length(), 6) + for i in range(a.length()): + self.assertEqual(a[i], MString("")) + + # Provide a list of MStrings + a = MStringArray([MString("a"), MString("b"), MString("c")]) + self.assertEqual(a.length(), 3) + self.assertPointEqual(a[0], MString("a")) + self.assertPointEqual(a[1], MString("b")) + self.assertPointEqual(a[2], MString("c")) + + # Provide a list of Python strings + a = MStringArray(["a", "b", "c"]) + self.assertEqual(a.length(), 3) + self.assertPointEqual(a[0], MString("a")) + self.assertPointEqual(a[1], MString("b")) + self.assertPointEqual(a[2], MString("c")) + + # Copy constructor + a2 = MStringArray(a) + self.assertEqual(a2.length(), 3) + self.assertPointEqual(a[0], MString("a")) + self.assertPointEqual(a[1], MString("b")) + self.assertPointEqual(a[2], MString("c")) + + def testStr(self): + """Test MStringArray __str__. + """ + a = MStringArray(2, "") + self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MStringArray iteration. + """ + a = MStringArray(5, "") + self.assertEqual(len(a), 5) + for s in a: + self.assertEqual(type(s), MString) + + def testIndexOperator(self): + """Test the MStringArray index operator. + """ + + a = MStringArray(3, "foo") + self.assertEqual(a[0], MString("foo")) + + a[1] = MString("spam") + self.assertEqual(a[1], MString("spam")) + + a[0].set("bar") + self.assertEqual(a[0], MString("bar")) + + def testSet(self): + """Test the MStringArray set() method. + """ + + a = MStringArray(3, "") + a.set(MString("spam"), 1) + self.assertEqual(a[1], MString("spam")) + + a.set("foo", 1) + self.assertEqual(a[1], MString("foo")) + + def testLength(self): + """Test the MStringArray length()/setLength() methods. + """ + + a = MStringArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + # The following would make Maya crash sooner or later. + # (see the comment in the MObjectArray unit test) +# a.setLength(3) +# self.assertEqual(a.length(), 3) + + def testRemove(self): + """Test the MStringArray remove() method. + """ + + a = MStringArray(5, "") + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the MStringArray insert() method. + """ + + a = MStringArray(4, "") + + a.insert(MString(), 1) + self.assertEqual(a.length(), 5) + + a.insert("spam", 1) + self.assertEqual(a.length(), 6) + + def testAppend(self): + """Test the MStringArray append() method. + """ + + a = MStringArray(4, "") + + a.append(MString()) + self.assertEqual(a.length(), 5) + + a.append("spam") + self.assertEqual(a.length(), 6) + + def testClear(self): + """Test the MStringArray clear() method. + """ + + a = MStringArray(4, "") + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + + def testGet(self): + """Test the MStringArray get() method. + """ + + a = MStringArray(["spam", "foo", "bar"]) + + p = a.get() + self.assertEqual(p, [MString("spam"), MString("foo"), MString("bar")]) + + p = [] + a.get(p) + self.assertEqual(p, [MString("spam"), MString("foo"), MString("bar")]) + + def testSizeIncrement(self): + """Test the MStringArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MStringArray(3, "") + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStringArray.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUintArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUintArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUintArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -0,0 +1,185 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MUintArray test + +import unittest +from maya.api import * + +class TestMUintArray(unittest.TestCase): + + def testConstructors(self): + """Test the MUintArray constructors. + """ + # Standard constructor + a = MUintArray() + self.assertEqual(a.length(), 0) + + # Provide an initial size + a = MUintArray(8) + self.assertEqual(a.length(), 8) + for i in range(a.length()): + self.assertEqual(type(a[i]), int) + + # Provide an initial size and default initializer + a = MUintArray(6, 12) + self.assertEqual(a.length(), 6) + for i in range(a.length()): + self.assertEqual(a[i], 12) + + # Provide a list of floats + a = MUintArray([1,2,3]) + self.assertEqual(a.length(), 3) + self.assertEqual(a[0], 1) + self.assertEqual(a[1], 2) + self.assertEqual(a[2], 3) + + # Copy constructor + a2 = MUintArray(a) + self.assertEqual(a2.length(), 3) + self.assertEqual(a2[0], 1) + self.assertEqual(a2[1], 2) + self.assertEqual(a2[2], 3) + + def testStr(self): + """Test MUintArray __str__. + """ + a = MUintArray(2) + self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MUintArray iteration. + """ + a = MUintArray(5) + self.assertEqual(len(a), 5) + for v in a: + self.assertEqual(v, 0) + + def testIndexOperator(self): + """Test the MUintArray index operator. + """ + + a = MUintArray(3) + self.assertEqual(a[0], 0) + + a[0] = 1 + self.assertEqual(a[0], 1) + + def testSet(self): + """Test the MUintArray set() method. + """ + + a = MUintArray(3) + a.set(17, 1) + self.assertEqual(a[1], 17) + + def testLength(self): + """Test the MUintArray length()/setLength() methods. + """ + + a = MUintArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + a.setLength(3) + self.assertEqual(a.length(), 3) + + def testRemove(self): + """Test the MUintArray remove() method. + """ + + a = MUintArray(5) + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the MUintArray insert() method. + """ + + a = MUintArray(4) + + a.insert(17, 1) + self.assertEqual(a.length(), 5) + + def testAppend(self): + """Test the MUintArray append() method. + """ + + a = MUintArray(4) + + a.append(17) + self.assertEqual(a.length(), 5) + + def testCopy(self): + """Test the MUintArray copy() method. + """ + + src = MUintArray(3) + src[0] = 1 + src[1] = 2 + src[2] = 3 + + a = MUintArray() + a.copy(src) + self.assertEqual(a.length(), 3) + self.assertEqual(a[0], 1) + self.assertEqual(a[1], 2) + self.assertEqual(a[2], 3) + + def testClear(self): + """Test the MUintArray clear() method. + """ + + a = MUintArray(4) + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + + def testGet(self): + """Test the MUintArray get() method. + """ + + a = MUintArray(3) + a[0] = 1 + a[1] = 2 + a[2] = 3 + + v = a.get() + self.assertEqual(v, [1, 2, 3]) + + p = [] + pnts.get(p) + self.assertEqual(v, [1, 2, 3]) + + def testSizeIncrement(self): + """Test the MUintArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MUintArray(3) + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUintArray.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py 2006-10-01 16:35:54 UTC (rev 69) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py 2006-10-01 16:37:17 UTC (rev 70) @@ -71,9 +71,16 @@ """Test MVectorArray iteration. """ a = MVectorArray(5) + self.assertEqual(len(a), 5) for v in a: self.assertEqual(type(v), maya._api.MVector) + def testStr(self): + """Test MVectorArray __str__. + """ + a = MVectorArray(2) + self.assertEqual(str(a)[0], "[") + def testIndexOperator(self): """Test the MVectorArray index operator. """ Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-10-01 16:35:54 UTC (rev 69) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-10-01 16:37:17 UTC (rev 70) @@ -23,20 +23,29 @@ from MAngle import TestMAngle from MBoundingBox import TestMBoundingBox from MColor import TestMColor +from MColorArray import TestMColorArray +from MDagPathArray import TestMDagPathArray from MDGMessage import TestMDGMessage +from MDoubleArray import TestMDoubleArray +from MFloatArray import TestMFloatArray from MFloatMatrix import TestMFloatMatrix from MFloatPoint import TestMFloatPoint +from MFloatPointArray import TestMFloatPointArray from MFloatVector import TestMFloatVector +from MFloatVectorArray import TestMFloatVectorArray from MFn import TestMFn from MFnBase import TestMFnBase from MGlobal import TestMGlobal from MImage import TestMImage +from MIntArray import TestMIntArray from MMatrix import TestMMatrix from MObject import TestMObject from MObjectArray import TestMObjectArray from MStatus import TestMStatus from MString import TestMString +from MStringArray import TestMStringArray from MTime import TestMTime +from MUintArray import TestMUintArray from MPoint import TestMPoint from MPointArray import TestMPointArray from MUserEventMessage import TestMUserEventMessage This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-03 09:05:30
|
Revision: 82 http://svn.sourceforge.net/cgkit/?rev=82&view=rev Author: mbaas Date: 2006-10-03 02:05:15 -0700 (Tue, 03 Oct 2006) Log Message: ----------- Updated the unit tests. Modified Paths: -------------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColorArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDoubleArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPointArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVectorArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MIntArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStringArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUintArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColorArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColorArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MColorArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -49,6 +49,13 @@ self.assertColEqual(cols[1], MColor(0.4,0.5,0.6)) self.assertColEqual(cols[2], MColor(0.7,0.8,0.9)) + # Provide a list of tuples + cols = MColorArray([(0.1,0.2,0.3), (0.4,0.5,0.6), (0.7,0.8,0.9)]) + self.assertEqual(cols.length(), 3) + self.assertColEqual(cols[0], MColor(0.1,0.2,0.3)) + self.assertColEqual(cols[1], MColor(0.4,0.5,0.6)) + self.assertColEqual(cols[2], MColor(0.7,0.8,0.9)) + # Copy constructor cols2 = MColorArray(cols) self.assertEqual(cols2.length(), 3) Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDoubleArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDoubleArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MDoubleArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -170,7 +170,7 @@ self.assertEqual(v, [1.5, 2.0, 3.0]) p = [] - pnts.get(p) + a.get(p) self.assertEqual(v, [1.5, 2.0, 3.0]) def testSizeIncrement(self): Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -170,7 +170,7 @@ self.assertEqual(v, [1.5, 2.0, 3.0]) p = [] - pnts.get(p) + a.get(p) self.assertEqual(v, [1.5, 2.0, 3.0]) def testSizeIncrement(self): Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPointArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPointArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatPointArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -54,6 +54,13 @@ self.assertPointEqual(pnts[1], MFloatPoint(4,5,6,1)) self.assertPointEqual(pnts[2], MFloatPoint(7,8,9,1)) + # Provide a list of tuples + pnts = MFloatPointArray([(1,2,3), (4,5,6), (7,8,9)]) + self.assertEqual(pnts.length(), 3) + self.assertPointEqual(pnts[0], MFloatPoint(1,2,3,1)) + self.assertPointEqual(pnts[1], MFloatPoint(4,5,6,1)) + self.assertPointEqual(pnts[2], MFloatPoint(7,8,9,1)) + # Copy constructor pnts2 = MFloatPointArray(pnts) self.assertEqual(pnts2.length(), 3) Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVectorArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVectorArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MFloatVectorArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -54,11 +54,11 @@ self.assertVecEqual(vecs[2], MFloatVector(7,8,9)) # Provide a list of tuples -# vecs = MFloatVectorArray([(1,2,3), (4,5,6), (7,8,9)]) -# self.assertEqual(vecs.length(), 3) -# self.assertVecEqual(vecs[0], MFloatVector(1,2,3)) -# self.assertVecEqual(vecs[1], MFloatVector(4,5,6)) -# self.assertVecEqual(vecs[2], MFloatVector(7,8,9)) + vecs = MFloatVectorArray([(1,2,3), (4,5,6), (7,8,9)]) + self.assertEqual(vecs.length(), 3) + self.assertVecEqual(vecs[0], MFloatVector(1,2,3)) + self.assertVecEqual(vecs[1], MFloatVector(4,5,6)) + self.assertVecEqual(vecs[2], MFloatVector(7,8,9)) # Copy constructor vecs2 = MFloatVectorArray(vecs) Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MIntArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MIntArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MIntArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -170,7 +170,7 @@ self.assertEqual(v, [1, 2, 3]) p = [] - pnts.get(p) + a.get(p) self.assertEqual(v, [1, 2, 3]) def testSizeIncrement(self): Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MObjectArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -54,11 +54,11 @@ b = MObjectArray(a) self.assertEqual(a.length(), 2) - def testStr(self): - """Test MObjectArray __str__. - """ - a = MObjectArray(2) - self.assertEqual(str(a)[0], "[") +# def testStr(self): +# """Test MObjectArray __str__. +# """ +# a = MObjectArray(2) +# self.assertEqual(str(a)[0], "[") def testIteration(self): """Test MObjectArray iteration. Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -54,6 +54,13 @@ self.assertPointEqual(pnts[1], MPoint(4,5,6,1)) self.assertPointEqual(pnts[2], MPoint(7,8,9,1)) + # Provide a list of tuples + pnts = MPointArray([(1,2,3), (4,5,6), (7,8,9)]) + self.assertEqual(pnts.length(), 3) + self.assertPointEqual(pnts[0], MPoint(1,2,3,1)) + self.assertPointEqual(pnts[1], MPoint(4,5,6,1)) + self.assertPointEqual(pnts[2], MPoint(7,8,9,1)) + # Copy constructor pnts2 = MPointArray(pnts) self.assertEqual(pnts2.length(), 3) Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStringArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStringArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MStringArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -43,23 +43,23 @@ # Provide a list of MStrings a = MStringArray([MString("a"), MString("b"), MString("c")]) self.assertEqual(a.length(), 3) - self.assertPointEqual(a[0], MString("a")) - self.assertPointEqual(a[1], MString("b")) - self.assertPointEqual(a[2], MString("c")) + self.assertEqual(a[0], MString("a")) + self.assertEqual(a[1], MString("b")) + self.assertEqual(a[2], MString("c")) # Provide a list of Python strings a = MStringArray(["a", "b", "c"]) self.assertEqual(a.length(), 3) - self.assertPointEqual(a[0], MString("a")) - self.assertPointEqual(a[1], MString("b")) - self.assertPointEqual(a[2], MString("c")) + self.assertEqual(a[0], MString("a")) + self.assertEqual(a[1], MString("b")) + self.assertEqual(a[2], MString("c")) # Copy constructor a2 = MStringArray(a) self.assertEqual(a2.length(), 3) - self.assertPointEqual(a[0], MString("a")) - self.assertPointEqual(a[1], MString("b")) - self.assertPointEqual(a[2], MString("c")) + self.assertEqual(a[0], MString("a")) + self.assertEqual(a[1], MString("b")) + self.assertEqual(a[2], MString("c")) def testStr(self): """Test MStringArray __str__. Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUintArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUintArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MUintArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -170,7 +170,7 @@ self.assertEqual(v, [1, 2, 3]) p = [] - pnts.get(p) + a.get(p) self.assertEqual(v, [1, 2, 3]) def testSizeIncrement(self): Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py 2006-10-03 09:04:04 UTC (rev 81) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MVectorArray.py 2006-10-03 09:05:15 UTC (rev 82) @@ -54,11 +54,11 @@ self.assertVecEqual(vecs[2], MVector(7,8,9)) # Provide a list of tuples -# vecs = MVectorArray([(1,2,3), (4,5,6), (7,8,9)]) -# self.assertEqual(vecs.length(), 3) -# self.assertVecEqual(vecs[0], MVector(1,2,3)) -# self.assertVecEqual(vecs[1], MVector(4,5,6)) -# self.assertVecEqual(vecs[2], MVector(7,8,9)) + vecs = MVectorArray([(1,2,3), (4,5,6), (7,8,9)]) + self.assertEqual(vecs.length(), 3) + self.assertVecEqual(vecs[0], MVector(1,2,3)) + self.assertVecEqual(vecs[1], MVector(4,5,6)) + self.assertVecEqual(vecs[2], MVector(7,8,9)) # Copy constructor vecs2 = MVectorArray(vecs) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mb...@us...> - 2006-10-03 10:11:43
|
Revision: 86 http://svn.sourceforge.net/cgkit/?rev=86&view=rev Author: mbaas Date: 2006-10-03 03:11:27 -0700 (Tue, 03 Oct 2006) Log Message: ----------- Updated/added unit tests. Modified Paths: -------------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py Added Paths: ----------- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MAttributeSpecArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPlugArray.py maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MTimeArray.py Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MAttributeSpecArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MAttributeSpecArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MAttributeSpecArray.py 2006-10-03 10:11:27 UTC (rev 86) @@ -0,0 +1,133 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MAttributeSpecArray test + +import unittest +from maya.api import * + +class TestMAttributeSpecArray(unittest.TestCase): + + def testConstructors(self): + """Test the MAttributeSpecArray constructors. + """ + # Standard constructor + a = MAttributeSpecArray() + self.assertEqual(a.length(), 0) + + # Copy constructor + a2 = MAttributeSpecArray(a) + self.assertEqual(a2.length(), 0) + +# def testStr(self): +# """Test MAttributeSpecArray __str__. +# """ +# a = MAttributeSpecArray() +# self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MAttributeSpecArray iteration. + """ + a = MAttributeSpecArray() + a.setLength(5) + self.assertEqual(len(a), 5) + for p in a: + self.assertEqual(type(p), MAttributeSpec) + + def testIndexOperator(self): + """Test the MAttributeSpecArray index operator. + """ + + a = MAttributeSpecArray() + a.setLength(5) + + v = a[0] + a[1] = v + + def testSet(self): + """Test the MAttributeSpecArray set() method. + """ + + a = MAttributeSpecArray() + a.setLength(5) + a.set(MAttributeSpec(), 1) + + def testLength(self): + """Test the MAttributeSpecArray length()/setLength() methods. + """ + + a = MAttributeSpecArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + def testRemove(self): + """Test the MAttributeSpecArray remove() method. + """ + + a = MAttributeSpecArray() + a.setLength(5) + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the MAttributeSpecArray insert() method. + """ + + a = MAttributeSpecArray() + a.setLength(4) + + a.insert(MAttributeSpec(), 1) + self.assertEqual(a.length(), 5) + + def testAppend(self): + """Test the MAttributeSpecArray append() method. + """ + + a = MAttributeSpecArray() + a.setLength(4) + + a.append(MAttributeSpec()) + self.assertEqual(a.length(), 5) + + def testClear(self): + """Test the MAttributeSpecArray clear() method. + """ + + a = MAttributeSpecArray() + a.setLength(4) + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + + def testSizeIncrement(self): + """Test the MAttributeSpecArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MAttributeSpecArray() + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MAttributeSpecArray.py ___________________________________________________________________ Name: svn:eol-style + native Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPlugArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPlugArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPlugArray.py 2006-10-03 10:11:27 UTC (rev 86) @@ -0,0 +1,147 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MPlugArray test + +import unittest +from maya.api import * + +class TestMPlugArray(unittest.TestCase): + + def testConstructors(self): + """Test the MPlugArray constructors. + """ + # Standard constructor + a = MPlugArray() + self.assertEqual(a.length(), 0) + + # Provide a list of MPlugs + a = MPlugArray([MPlug(), MPlug()]) + self.assertEqual(a.length(), 2) + + # Copy constructor + a2 = MPlugArray(a) + self.assertEqual(a2.length(), 2) + +# def testStr(self): +# """Test MPlugArray __str__. +# """ +# a = MPlugArray() +# self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MPlugArray iteration. + """ + a = MPlugArray([MPlug(), MPlug()]) + self.assertEqual(len(a), 2) + for p in a: + self.assertEqual(type(p), MPlug) + + def testIndexOperator(self): + """Test the MPlugArray index operator. + """ + + a = MPlugArray([MPlug(), MPlug()]) + p = a[0] + a[1] = p + + def testSet(self): + """Test the MPlugArray set() method. + """ + + a = MPlugArray([MPlug(), MPlug()]) + a.set(MPlug(), 1) + + def testLength(self): + """Test the MPlugArray length()/setLength() methods. + """ + + a = MPlugArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + def testRemove(self): + """Test the MPlugArray remove() method. + """ + + a = MPlugArray() + a.setLength(5) + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the MPlugArray insert() method. + """ + + a = MPlugArray() + a.setLength(4) + + a.insert(MPlug(), 1) + self.assertEqual(a.length(), 5) + + def testAppend(self): + """Test the MPlugArray append() method. + """ + + a = MPlugArray() + a.setLength(4) + + a.append(MPlug()) + self.assertEqual(a.length(), 5) + + def testClear(self): + """Test the MPlugArray clear() method. + """ + + a = MPlugArray() + a.setLength(4) + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + + def testGet(self): + """Test the MPlugArray get() method. + """ + + a = MPlugArray() + a.setLength(3) + + p = a.get() + self.assertEqual(len(p), 3) + + p = [] + a.get(p) + self.assertEqual(len(p), 3) + + def testSizeIncrement(self): + """Test the MFPlugArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MPlugArray() + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPlugArray.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-10-03 10:05:39 UTC (rev 85) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MPointArray.py 2006-10-03 10:11:27 UTC (rev 86) @@ -208,6 +208,16 @@ pnts.get(p) self.assertEqual(p, [(1.0,2.0,3.0,1.0), (4.0,5.0,6.0,1.0), (7.0,8.0,9.0,1.0)]) + def testSizeIncrement(self): + """Test the MPointArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MPointArray(3) + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) + # Helper method to compare points def assertPointEqual(self, a, b): Added: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MTimeArray.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MTimeArray.py (rev 0) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MTimeArray.py 2006-10-03 10:11:27 UTC (rev 86) @@ -0,0 +1,162 @@ +# ***** BEGIN LICENSE BLOCK ***** +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Python Computer Graphics Kit. +# +# The Initial Developer of the Original Code is Matthias Baas. +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +# MTimeArray test + +import unittest +from maya.api import * +MTime.__repr__ = MTime.__str__ + +class TestMTimeArray(unittest.TestCase): + + def testConstructors(self): + """Test the MTimeArray constructors. + """ + # Standard constructor + a = MTimeArray() + self.assertEqual(a.length(), 0) + + # Provide an initial size and default initializer + a = MTimeArray(6, MTime(1)) + self.assertEqual(a.length(), 6) + for i in range(a.length()): + self.assertEqual(a[i], MTime(1)) + + # Provide a list of MTimes + a = MTimeArray([MTime(1), MTime(2), MTime(3)]) + self.assertEqual(a.length(), 3) + self.assertEqual(a[0], MTime(1)) + self.assertEqual(a[1], MTime(2)) + self.assertEqual(a[2], MTime(3)) + + # Copy constructor + a2 = MTimeArray(a) + self.assertEqual(a2.length(), 3) + self.assertEqual(a2[0], MTime(1)) + self.assertEqual(a2[1], MTime(2)) + self.assertEqual(a2[2], MTime(3)) + + def testStr(self): + """Test MTimeArray __str__. + """ + a = MTimeArray(2, MTime()) + self.assertEqual(str(a)[0], "[") + + def testIteration(self): + """Test MTimeArray iteration. + """ + a = MTimeArray(5, MTime()) + self.assertEqual(len(a), 5) + for p in a: + self.assertEqual(type(p), MTime) + + def testIndexOperator(self): + """Test the MTimeArray index operator. + """ + + a = MTimeArray(3, MTime()) + a[1].setValue(2) + self.assertEqual(a[1], MTime(2)) + + a[0] = MTime(4) + self.assertEqual(a[0], MTime(4)) + + def testSet(self): + """Test the MTimeArray set() method. + """ + + a = MTimeArray(3, MTime()) + a.set(MTime(3), 1) + self.assertEqual(a[1], MTime(3)) + + def testLength(self): + """Test the MTimeArray length()/setLength() methods. + """ + + a = MTimeArray() + self.assertEqual(a.length(), 0) + + a.setLength(5) + self.assertEqual(a.length(), 5) + + def testRemove(self): + """Test the MTimeArray remove() method. + """ + + a = MTimeArray(5, MTime()) + + a.remove(2) + self.assertEqual(a.length(), 4) + + def testInsert(self): + """Test the MTimeArray insert() method. + """ + + a = MTimeArray(4, MTime()) + + a.insert(MTime(), 1) + self.assertEqual(a.length(), 5) + + def testAppend(self): + """Test the MTimeArray append() method. + """ + + a = MTimeArray(4, MTime()) + + a.append(MTime()) + self.assertEqual(a.length(), 5) + + def testClear(self): + """Test the MTimeArray clear() method. + """ + + a = MTimeArray(4, MTime()) + self.assertEqual(a.length(), 4) + a.clear() + self.assertEqual(a.length(), 0) + + def testGet(self): + """Test the MTimeArray get() method. + """ + + a = MTimeArray(3, MTime()) + a[0] = MTime(1) + a[1] = MTime(2) + a[2] = MTime(3) + + p = a.get() + self.assertEqual(p, [MTime(1), MTime(2), MTime(3)]) + + p = [] + a.get(p) + self.assertEqual(p, [MTime(1), MTime(2), MTime(3)]) + + def testSizeIncrement(self): + """Test the MTimeArray sizeIncrement()/setSizeIncrement() methods. + """ + + a = MTimeArray() + self.assertEqual(type(a.sizeIncrement()), int) + + a.setSizeIncrement(5) + self.assertEqual(a.sizeIncrement(), 5) + Property changes on: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/MTimeArray.py ___________________________________________________________________ Name: svn:eol-style + native Modified: maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py =================================================================== --- maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-10-03 10:05:39 UTC (rev 85) +++ maya/trunk/maya_wrapper/maya/unittest/sdk_unittests/__init__.py 2006-10-03 10:11:27 UTC (rev 86) @@ -21,6 +21,7 @@ # ***** END LICENSE BLOCK ***** from MAngle import TestMAngle +from MAttributeSpecArray import TestMAttributeSpecArray from MBoundingBox import TestMBoundingBox from MColor import TestMColor from MColorArray import TestMColorArray @@ -45,7 +46,9 @@ from MString import TestMString from MStringArray import TestMStringArray from MTime import TestMTime +from MTimeArray import TestMTimeArray from MUintArray import TestMUintArray +from MPlugArray import TestMPlugArray from MPoint import TestMPoint from MPointArray import TestMPointArray from MUserEventMessage import TestMUserEventMessage This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |