From c697083e8998042a78bf87f30f3ec42a0debccac Mon Sep 17 00:00:00 2001 From: Enric Tejedor Saavedra <enric.tejedor.saavedra@cern.ch> Date: Thu, 28 Feb 2019 09:41:37 +0100 Subject: [PATCH] [Exp PyROOT] Test __getitem__ pythonisation of TVector3 --- .../PyROOT/test/CMakeLists.txt | 1 + .../PyROOT/test/tvector3_getitem.py | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 bindings/pyroot_experimental/PyROOT/test/tvector3_getitem.py diff --git a/bindings/pyroot_experimental/PyROOT/test/CMakeLists.txt b/bindings/pyroot_experimental/PyROOT/test/CMakeLists.txt index 3ec15769a03..ff65cd8e708 100644 --- a/bindings/pyroot_experimental/PyROOT/test/CMakeLists.txt +++ b/bindings/pyroot_experimental/PyROOT/test/CMakeLists.txt @@ -52,6 +52,7 @@ ROOT_ADD_PYUNITTEST(pyroot_pyz_tvectort_getitem tvectort_getitem.py) # TVector3 pythonisations ROOT_ADD_PYUNITTEST(pyroot_pyz_tvector3_len tvector3_len.py) +ROOT_ADD_PYUNITTEST(pyroot_pyz_tvector3_getitem tvector3_getitem.py) # TString pythonisations ROOT_ADD_PYUNITTEST(pyroot_pyz_tstring_len tstring_len.py) diff --git a/bindings/pyroot_experimental/PyROOT/test/tvector3_getitem.py b/bindings/pyroot_experimental/PyROOT/test/tvector3_getitem.py new file mode 100644 index 00000000000..be71dcff34d --- /dev/null +++ b/bindings/pyroot_experimental/PyROOT/test/tvector3_getitem.py @@ -0,0 +1,35 @@ +import unittest + +import ROOT + + +class TVector3GetItem(unittest.TestCase): + """ + Test for the pythonization that allows to: (i) get an item of a + TVector3 with boundary check for the index and (ii) iterate over + a TVector3. + """ + + # Tests + def test_boundary_check(self): + v = ROOT.TVector3(1., 2., 3.) + + # In range + self.assertEqual(v[0], v[0]) + + # Out of range + with self.assertRaises(IndexError): + v[-1] + + # Out of range + with self.assertRaises(IndexError): + v[3] + + def test_iterable(self): + v = ROOT.TVector3(1., 2., 3.) + + self.assertEquals(list(v), [1., 2., 3.]) + + +if __name__ == '__main__': + unittest.main() -- GitLab