@@ -428,6 +428,35 @@ def test_Domain_del_construct(self):
428
428
self .assertIsInstance (e .del_construct ("domainaxis2" ), cf .DomainAxis )
429
429
self .assertEqual (e .cyclic (), set ())
430
430
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 (d2 .cyclic ("X" , iscyclic = False ), set (("domainaxis2" ,)))
455
+ self .assertEqual (d2 .cyclic (), set ())
456
+ self .assertEqual (d2 .cyclic ("X" , period = 360 ), set ())
457
+ self .assertEqual (d2 .cyclic (), set (("domainaxis2" ,)))
458
+ self .assertTrue (d2 .iscyclic ("X" ))
459
+
431
460
432
461
if __name__ == "__main__" :
433
462
print ("Run date:" , datetime .datetime .now ())
0 commit comments