Add __mod__ operator to UntypedAtomic class
This commit is contained in:
parent
aeba3aab05
commit
3f50cfd962
|
@ -1001,6 +1001,9 @@ class UntypedAtomic(object):
|
|||
def __abs__(self):
|
||||
return abs(self.value)
|
||||
|
||||
def __mod__(self, other):
|
||||
return operator.mod(*self._get_operands(other))
|
||||
|
||||
if PY3:
|
||||
def __str__(self):
|
||||
return str(self.value)
|
||||
|
|
|
@ -449,11 +449,11 @@ def evaluate(self, context=None):
|
|||
if varname in self.parser.variables:
|
||||
return self.parser.variables[varname]
|
||||
elif context is None:
|
||||
return None
|
||||
return
|
||||
elif varname in context.variables:
|
||||
return context.variables[varname]
|
||||
elif isinstance(context, XPathSchemaContext):
|
||||
return None
|
||||
return
|
||||
else:
|
||||
raise ElementPathNameError('unknown variable', token=self)
|
||||
|
||||
|
|
|
@ -97,6 +97,13 @@ class UntypedAtomicTest(unittest.TestCase):
|
|||
self.assertEqual(9.0 / UntypedAtomic('3'), 3.0)
|
||||
self.assertEqual(UntypedAtomic('15') * UntypedAtomic('4'), 60)
|
||||
|
||||
def test_abs(self):
|
||||
self.assertEqual(abs(UntypedAtomic(-10)), 10)
|
||||
|
||||
def test_mod(self):
|
||||
self.assertEqual(UntypedAtomic(1) % 2, 1)
|
||||
self.assertEqual(UntypedAtomic('1') % 2, 1.0)
|
||||
|
||||
|
||||
class DateTimeTypesTest(unittest.TestCase):
|
||||
|
||||
|
|
Loading…
Reference in New Issue