Skip to content

Commit d4cf6fe

Browse files
Add new test_Domain method to unit test '(is)cyclic'
1 parent 46cfb03 commit d4cf6fe

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

cf/test/test_Domain.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,36 @@ def test_Domain_del_construct(self):
428428
self.assertIsInstance(e.del_construct("domainaxis2"), cf.DomainAxis)
429429
self.assertEqual(e.cyclic(), set())
430430

431+
def test_Domain_cyclic_iscyclic(self):
432+
"""Test the `cyclic` and `iscyclic` Domain methods."""
433+
# A field and its domain should have the same cyclic() output.
434+
f1 = cf.example_field(1) # no cyclic axes
435+
d1 = f1.domain
436+
f2 = cf.example_field(2) # one cyclic axis, 'domainaxis2' ('X')
437+
d2 = f2.domain
438+
439+
# Getting
440+
self.assertEqual(d1.cyclic(), f1.cyclic())
441+
self.assertEqual(d1.cyclic(), set())
442+
self.assertFalse(d1.iscyclic('X'))
443+
self.assertFalse(d1.iscyclic('Y'))
444+
self.assertFalse(d1.iscyclic('Z'))
445+
self.assertFalse(d1.iscyclic('T'))
446+
self.assertEqual(d2.cyclic(), f2.cyclic())
447+
self.assertEqual(d2.cyclic(), set(("domainaxis2",)))
448+
self.assertTrue(d2.iscyclic('X'))
449+
self.assertFalse(d2.iscyclic('Y'))
450+
self.assertFalse(d2.iscyclic('Z'))
451+
self.assertFalse(d2.iscyclic('T'))
452+
453+
# Setting
454+
self.assertEqual(
455+
d2.cyclic('X', iscyclic=False), set(("domainaxis2",)))
456+
self.assertEqual(d2.cyclic(), set())
457+
self.assertEqual(d2.cyclic('X', period=360), set())
458+
self.assertEqual(d2.cyclic(), set(("domainaxis2",)))
459+
self.assertTrue(d2.iscyclic('X'))
460+
431461

432462
if __name__ == "__main__":
433463
print("Run date:", datetime.datetime.now())

0 commit comments

Comments
 (0)