def METHOD_NAME(self):
    """Test paths in predicates"""
    self.q('//*[./level2]', {"root", "level1a", "level1b"})
    self.q('//*[direct-child@level2]', {"level1a", "level1b"})
    self.q('//*[descendant@level*a]', {"root"})
    self.q('//*[direct-descendant@level*a]', {"root"})
    self.q('//*[descendant-or-self@level*a]', {"root", "level1a"})
    self.q('//*[direct-descendant-or-self@level*a]', {"root", "level1a"})
    self.q('/root[/level*]', set())
    self.q('/root[/root]', {"root"})
    self.q('/root[./*["$LEVEL" == "1a"]]', {"root"})