def test_pass_arguments_to_base_class(): tree = MockTree(entries=1000) events = Events(tree, 100) assert 100 == events.nEvents assert 0 == events.start events = Events(tree, 100, 20) assert 100 == events.nEvents assert 20 == events.start
def test_getattr_same_objects(): tree = MockTree() events = Events(tree) branchBuilder = MockBranchBuilder() events.buildBranch = branchBuilder branch1 = MockBranch() branchBuilder.next = branch1 jet_pt1 = events.jet_pt assert branch1 is jet_pt1 branch2 = MockBranch() branchBuilder.next = branch2 jet_pt2 = events.jet_pt assert branch1 is jet_pt2 assert branch2 is not jet_pt2 it = iter(events) event = next(it) branch3 = MockBranch() branchBuilder.next = branch3 jet_pt3 = event.jet_pt assert branch1 is jet_pt3 assert branch3 is not jet_pt3
def test_getattr_exception(): tree = MockTree() events = Events(tree) events.buildBranch = MockBranchBuilder() with pytest.raises(AttributeError): events.no_such_branch
def use_Events(): inputFile = ROOT.TFile.Open(inputPath) tree = inputFile.Get(treeName) events = Events(tree) for event in events: for i in range(event.Jet.GetEntries()): event.Jet[i].PT
def test_nEvents(self): tree = MockTree(entries=100) events = Events(tree) self.assertEqual(100, events.nEvents) # default the same as entries events = Events(tree, -1) self.assertEqual(100, events.nEvents) # the same as entries events = Events(tree, 50) self.assertEqual(50, events.nEvents) events = Events(tree, 120) self.assertEqual(100, events.nEvents) events = Events(tree, 100) self.assertEqual(100, events.nEvents)
def test_iter_getattr(): tree = MockTree(entries=5) events = Events(tree) it = iter(events) event = next(it) assert 1111 == event.branch1 tree.branch1 = 2222 assert 2222 == event.branch1
def test_iter_getattr(self): tree = MockTree(entries=5) events = Events(tree) it = iter(events) event = next(it) self.assertEqual(1111, event.branch1) tree.branch1 = 2222 self.assertEqual(2222, event.branch1)
def test_nEvents_start(self): tree = MockTree(entries=100) events = Events(tree, maxEvents=-1, start=1) self.assertEqual(99, events.nEvents) events = Events(tree, maxEvents=10, start=1) self.assertEqual(10, events.nEvents) events = Events(tree, maxEvents=-1, start=99) self.assertEqual(1, events.nEvents) events = Events(tree, maxEvents=20, start=99) self.assertEqual(1, events.nEvents) events = Events(tree, maxEvents=-1, start=100) self.assertEqual(0, events.nEvents) events = Events(tree, maxEvents=-1, start=110) self.assertEqual(0, events.nEvents) events = Events(tree, maxEvents=10, start=110) self.assertEqual(0, events.nEvents) self.assertRaises(ValueError, Events, tree, maxEvents=-1, start=-10)
def setUp(self): inputFile = 'sample_03.root' treeName = 'tree' inputPath = os.path.join(os.path.dirname(os.path.realpath(__file__)), inputFile) self.inputFile = ROOT.TFile.Open(inputPath) self.tree = self.inputFile.Get(treeName) self.events = Events(self.tree)
def use_Events_SetBranchStatus_obj(): inputFile = ROOT.TFile.Open(inputPath) tree = inputFile.Get(treeName) tree.SetBranchStatus("*", 0) tree.SetBranchStatus("Jet.*", 1) events = Events(tree) for event in events: for i in range(event.Jet.GetEntries()): event.Jet[i].PT
def test_getattr(): tree = MockTree() events = Events(tree) branchBuilder = MockBranchBuilder() events.buildBranch = branchBuilder branchBuilder.next = MockBranch() jet_pt = events.jet_pt assert isinstance(jet_pt, MockBranch)
def use_Events(): inputFile = ROOT.TFile.Open(inputPath) tree = inputFile.Get(treeName) tree.SetBranchStatus("*", 0) tree.SetBranchStatus("jet_pt", 1) events = Events(tree) for event in events: jet_pt = event.jet_pt for i in range(len(jet_pt)): jet_pt[i]
def test_2_events(tree, events): jet_pt = events.jet_pt met_pt = events.met_pt _assert_contents(tree, jet_pt, met_pt) # the 2nd events object from the same tree events2 = Events(tree) jet_pt2 = events2.jet_pt met_pt2 = events2.met_pt assert jet_pt is jet_pt2 assert met_pt is met_pt2 _assert_contents(tree, jet_pt, met_pt)
def test_2_events(self): jet_pt = self.events.jet_pt met_pt = self.events.met_pt self._assert_contents(jet_pt, met_pt) # the 2nd events object from the same tree events2 = Events(self.tree) jet_pt2 = events2.jet_pt met_pt2 = events2.met_pt self.assertIs(jet_pt, jet_pt2) self.assertIs(met_pt, met_pt2) self._assert_contents(jet_pt, met_pt)
def test_getitem_start(self): tree = MockTree(entries=4) events = Events(tree, start=2) self.assertEqual(-1, events.iEvent) event = events[0] self.assertEqual(0, event.iEvent) self.assertEqual(2, tree.ievent) event = events[1] self.assertEqual(1, event.iEvent) self.assertEqual(3, tree.ievent) self.assertRaises(IndexError, events.__getitem__, 4) self.assertEqual(-1, events.iEvent)
def test_getitem_start(Events): tree = MockTree(entries=4) events = Events(tree, start=2) assert -1 == events.iEvent event = events[0] assert 0 == event.iEvent assert 2 == tree.ievent event = events[1] assert 1 == event.iEvent assert 3 == tree.ievent with pytest.raises(IndexError): events[4] assert -1 == events.iEvent
def test_iter_iEvent_start(self): tree = MockTree(entries=4) events = Events(tree, start=2) self.assertEqual(-1, events.iEvent) it = iter(events) event = next(it) self.assertEqual(0, event.iEvent) self.assertEqual(2, tree.ievent) event = next(it) self.assertEqual(1, event.iEvent) self.assertEqual(3, tree.ievent) self.assertRaises(StopIteration, next, it) self.assertEqual(-1, event.iEvent)
def test_iter_iEvent_start(Events): tree = MockTree(entries=4) events = Events(tree, start=2) assert -1 == events.iEvent it = iter(events) event = next(it) assert 0 == event.iEvent assert 2 == tree.ievent event = next(it) assert 1 == event.iEvent assert 3 == tree.ievent with pytest.raises(StopIteration): next(it) assert -1 == event.iEvent
def test_iter_maxEvents(self): tree = MockTree(entries=40) events = Events(tree, maxEvents=4) self.assertEqual(-1, events.iEvent) it = iter(events) event = next(it) self.assertEqual(0, event.iEvent) event = next(it) self.assertEqual(1, event.iEvent) event = next(it) self.assertEqual(2, event.iEvent) event = next(it) self.assertEqual(3, event.iEvent) self.assertRaises(StopIteration, next, it) self.assertEqual(-1, event.iEvent)
def test_getattr_getentry(): tree = MockTree() events = Events(tree, start=10) branchBuilder = MockBranchBuilder() events.buildBranch = branchBuilder assert -1 == events.iEvent assert -1 == tree.ievent assert not tree.getEntry_called branchBuilder.next = MockBranch() jet_pt = events.jet_pt assert not tree.getEntry_called it = iter(events) event = next(it) tree.getEntry_called = False assert 0 == events.iEvent assert 10 == tree.ievent assert not tree.getEntry_called jet_pt = event.jet_pt assert not tree.getEntry_called tree.getEntry_called = False met_pt = event.met_pt assert tree.getEntry_called assert 0 == events.iEvent assert 10 == tree.ievent event = next(it) tree.getEntry_called = False assert 1 == events.iEvent assert 11 == tree.ievent assert not tree.getEntry_called jet_pt = event.jet_pt assert not tree.getEntry_called tree.getEntry_called = False met_pt = event.met_pt assert not tree.getEntry_called assert 1 == events.iEvent assert 11 == tree.ievent tree.getEntry_called = False njets = event.njets assert tree.getEntry_called assert 1 == events.iEvent assert 11 == tree.ievent
def test_iter_maxEvents(Events): tree = MockTree(entries=40) events = Events(tree, maxEvents=4) assert -1 == events.iEvent it = iter(events) event = next(it) assert 0 == event.iEvent event = next(it) assert 1 == event.iEvent event = next(it) assert 2 == event.iEvent event = next(it) assert 3 == event.iEvent with pytest.raises(StopIteration): next(it) assert -1 == event.iEvent
def test_vector(self): inputFile = 'sample_02.root' treeName = 'tree' inputPath = os.path.join(os.path.dirname(os.path.realpath(__file__)), inputFile) inputFile = ROOT.TFile.Open(inputPath) tree = inputFile.Get(treeName) events = Events(tree) trigger_path = events.trigger_path trigger_decision = events.trigger_decision self.assertGreater(tree.GetEntry(0), 0) self.assertEqual(449, len(trigger_path)) self.assertEqual('AlCa_EcalEtaEBonly', trigger_path[0]) self.assertEqual('DST_Physics', trigger_path[12]) self.assertEqual('HLT_SingleForJet25', trigger_path[438]) self.assertEqual(449, len(trigger_decision)) self.assertEqual(0, trigger_decision[0]) self.assertEqual(0, trigger_decision[13]) self.assertEqual(0, trigger_decision[438]) self.assertGreater(tree.GetEntry(1), 0) self.assertEqual(438, len(trigger_path)) self.assertEqual('AlCa_EcalEtaEBonly', trigger_path[0]) self.assertEqual('DST_Ele8_CaloIdL_CaloIsoVL_TrkIdVL_TrkIsoVL_HT250', trigger_path[12]) self.assertRaises(IndexError, trigger_path.__getitem__, 438) self.assertEqual(438, len(trigger_decision)) self.assertEqual(0, trigger_decision[0]) self.assertEqual(1, trigger_decision[13]) self.assertRaises(IndexError, trigger_decision.__getitem__, 438) # This sample file has only two entries. When the 3rd entry is # tried to be accessed, GetEntry(2) returns 0, but the vectors # won't be cleared. These have the previous contents. self.assertEqual(tree.GetEntry(2), 0) self.assertEqual(438, len(trigger_path)) self.assertEqual(438, len(trigger_decision))
def test_nEvents(Events, maxEvents, expected): tree = MockTree(entries=100) events = Events(tree, maxEvents) assert expected == events.nEvents assert expected == len(events)
def test_repr(): tree = MockTree() events = Events(tree) repr(events)
def test_nEvents_start_raise(Events): tree = MockTree(entries=100) with pytest.raises(ValueError): Events(tree, maxEvents=-1, start=-10)
def events(tree): yield Events(tree)
def test_nEvents_default(Events): tree = MockTree(entries=100) events = Events(tree) assert 100 == events.nEvents # default the same as entries assert 100 == len(events)
def test_init(Events): tree = MockTree() events = Events(tree) events = Events(tree, 100) assert tree is events.tree
def test_init_branch_status(): tree = MockTree() assert [] == tree.branchstatus events = Events(tree) events.buildBranch = MockBranchBuilder() assert [('*', 0)] == tree.branchstatus
def test_nEvents_start(Events, maxEvents, start, expected): tree = MockTree(entries=100) events = Events(tree, maxEvents=maxEvents, start=start) assert expected == events.nEvents assert expected == len(events)