def test_lambda_style_search(): particles = Particle.from_search_list(lambda p: p.pdgname == 'p') assert len(particles) == 2 assert 2212 in particles assert -2212 in particles assert Particle.from_search(lambda p: p.pdgname == 'p' and p > 0) == 2212 assert Particle.from_search(lambda p: p.pdgname == 'p' and p < 0) == -2212
def test_from_search(): # 1 match found prepr = repr(Particle.from_search(name='gamma')) assert prepr == "<Particle: pdgid=22, name='gamma', mass=0.0 MeV>" # No match found with pytest.raises(ParticleNotFound): Particle.from_search(name='NonExistent') # Multiple matches found with pytest.raises(RuntimeError): Particle.from_search(name=lambda x: 'Upsilon' in x)
def test_keyword_style_search(): particles = Particle.from_search_list(pdgname='p') assert len(particles) == 2 assert 2212 in particles assert -2212 in particles particles = Particle.from_search_list(name='p') assert len(particles) == 1 assert 2212 in particles assert Particle.from_search(pdgname='p', particle=True) == 2212 assert Particle.from_search(pdgname='p', particle=False) == -2212 assert Particle.from_search(name='p', particle=True) == 2212 assert Particle.from_search(name='p~', particle=False) == -2212
def test_keyword_lambda_style_search(): particles = Particle.from_search_list(pdgname=lambda x: 'p' == x) assert len(particles) == 2 assert 2212 in particles assert -2212 in particles # Fuzzy name particles = Particle.from_search_list(name=lambda x: 'p' in x) assert len(particles) > 2 assert 2212 in particles assert -2212 in particles # Name and particle assert Particle.from_search(name=lambda x: x == 'p', particle=True) == 2212 # Unit based comparison assert 2212 in Particle.from_search_list(lifetime=lambda x: x > 1 * second)