49def check(causes, result):
50 result["root_output_file"] = FILENAME
51
52 if not os.path.exists(FILENAME):
53 causes.append("missing histogram file")
54 return False
55
56 try:
57 import ROOT
58
59 f = ROOT.TFile.Open(FILENAME)
60
61 h = f.Get("Alg/Categories")
62 if not h:
63 k = f.GetKey("Alg/Categories")
64 if k:
65 h = k.ReadObj()
66
67 assert h, "missing histogram"
68
69 if h.GetNbinsX() != 4:
70 causes.append("number of bins")
71 result["error"] = f"expected 4 bins, got {h.GetNbinsX()}"
72 return False
73
74 axis = h.GetXaxis()
75 labels = list(axis.GetLabels())
76 expected = ["Simple", "Complex", "Bad", "Wrong"]
77 if labels != expected:
78 causes.append("wrong axis labels")
79 result["expected_labels"] = ", ".join(repr(l) for l in expected)
80 result["found_labels"] = ", ".join(repr(l) for l in labels)
81 return False
82
83 except AssertionError as err:
84 causes.append(str(err))
85 return False
86
87 except Exception:
88 causes.append("failure reading histogram file")
89 result["python_exception"] = result.Quote(format_exc())
90 return False
91
92 return True