2022-11-06 21:27:01 +00:00
|
|
|
from utils import PreservesTestCase
|
2022-06-06 13:28:11 +00:00
|
|
|
|
|
|
|
from preserves import *
|
|
|
|
from preserves.path import parse
|
|
|
|
|
2022-11-06 21:27:01 +00:00
|
|
|
class BasicPathTests(PreservesTestCase):
|
2022-06-06 13:28:11 +00:00
|
|
|
def test_identity(self):
|
2022-11-06 21:27:01 +00:00
|
|
|
self.assertPreservesEqual(parse('').exec(1), (1,))
|
|
|
|
self.assertPreservesEqual(parse('').exec([]), ([],))
|
|
|
|
self.assertPreservesEqual(parse('').exec(Record(Symbol('hi'), [])), (Record(Symbol('hi'), []),))
|
2022-06-06 13:28:11 +00:00
|
|
|
|
|
|
|
def test_children(self):
|
2022-11-06 21:27:01 +00:00
|
|
|
self.assertPreservesEqual(parse('/').exec([1, 2, 3]), (1, 2, 3))
|
|
|
|
self.assertPreservesEqual(parse('/').exec([1, [2], 3]), (1, [2], 3))
|
|
|
|
self.assertPreservesEqual(parse('/').exec(Record(Symbol('hi'), [1, [2], 3])), (1, [2], 3))
|
2022-06-06 13:28:11 +00:00
|
|
|
|
|
|
|
def test_label(self):
|
2022-11-06 21:27:01 +00:00
|
|
|
self.assertPreservesEqual(parse('.^').exec([1, 2, 3]), ())
|
|
|
|
self.assertPreservesEqual(parse('.^').exec([1, [2], 3]), ())
|
|
|
|
self.assertPreservesEqual(parse('.^').exec(Record(Symbol('hi'), [1, [2], 3])), (Symbol('hi'),))
|
2022-06-06 13:28:11 +00:00
|
|
|
|
|
|
|
def test_count(self):
|
2022-11-06 21:27:01 +00:00
|
|
|
self.assertPreservesEqual(parse('<count / ^ hi>').exec([ Record(Symbol('hi'), [1]),
|
|
|
|
Record(Symbol('no'), [2]),
|
|
|
|
Record(Symbol('hi'), [3]) ]),
|
2022-06-06 13:28:11 +00:00
|
|
|
(2,))
|
2022-11-06 21:27:01 +00:00
|
|
|
self.assertPreservesEqual(parse('/ <count ^ hi>').exec([ Record(Symbol('hi'), [1]),
|
|
|
|
Record(Symbol('no'), [2]),
|
|
|
|
Record(Symbol('hi'), [3]) ]),
|
2022-06-06 13:28:11 +00:00
|
|
|
(1, 0, 1))
|