From e8e0f76e8bd8e8cba37a9b957e9229adcb604fc3 Mon Sep 17 00:00:00 2001
From: Stefan Wunsch <stefan.wunsch@cern.ch>
Date: Mon, 30 Apr 2018 09:31:29 +0200
Subject: [PATCH] [PyROOT] Fix TTree.AsMatrix unit-test for 32bit systems

---
 bindings/pyroot/test/ttree_asmatrix.py | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/bindings/pyroot/test/ttree_asmatrix.py b/bindings/pyroot/test/ttree_asmatrix.py
index a8ff3fd6dac..eb4b523a24f 100644
--- a/bindings/pyroot/test/ttree_asmatrix.py
+++ b/bindings/pyroot/test/ttree_asmatrix.py
@@ -1,9 +1,12 @@
 import unittest
 import ROOT
 import numpy as np
+from sys import maxsize
 
 
 class TTreeAsMatrix(unittest.TestCase):
+    is_64bit = True if maxsize > 2**32 else False
+
     # Helpers
     def make_tree(self, *dtypes):
         tree = ROOT.TTree("test", "description")
@@ -20,9 +23,15 @@ class TTreeAsMatrix(unittest.TestCase):
             elif "i" in dtype:
                 var = np.empty(1, dtype=np.uint32)
             elif "L" in dtype:
-                var = np.empty(1, dtype=np.int64)
+                if self.is_64bit:
+                    var = np.empty(1, dtype=np.int64)
+                else:
+                    var = np.empty(1, dtype=np.int32)
             elif "l" in dtype:
-                var = np.empty(1, dtype=np.uint64)
+                if self.is_64bit:
+                    var = np.empty(1, dtype=np.uint64)
+                else:
+                    var = np.empty(1, dtype=np.uint32)
             elif "S" in dtype:
                 var = np.empty(1, dtype=np.int16)
             elif "s" in dtype:
@@ -150,6 +159,9 @@ class TTreeAsMatrix(unittest.TestCase):
             "float": np.dtype(np.float32),
             "double": np.dtype(np.float64)
         }
+        if not self.is_64bit:
+            numpy_dtype["long"] = np.dtype(np.int32)
+            numpy_dtype["unsigned long"] = np.dtype(np.uint32)
         tree, reference, _, _, _ = self.make_tree("F", "F")
         matrix_ref = np.asarray(reference, dtype=np.float64)
         for dtype in numpy_dtype:
-- 
GitLab