def test_segment_angles_affects_solid(self): blanket1 = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180) blanket2 = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180, cut=blanket1) blanket2.segments_angles = [0, 25, 50, 90, 130, 150, 180] assert blanket2.volume != 0
def test_segments_angles_is_modified_num_segments(self): blanket1 = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180) blanket2 = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180, cut=blanket1) blanket1.num_segments = 8 blanket2.num_segments = 5 assert blanket2.volume != 0
def test_num_point_is_affected(self): blanket = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180) assert blanket.num_points == blanket.num_segments + 1 blanket.num_segments = 60 assert blanket.num_points == blanket.num_segments + 1
def test_creation_with_gaps(self): blanket = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180, segments_gap=3 ) assert blanket.solid is not None
def test_modifying_nb_segments_limits(self): """creates a shape and checks that modifying the nb_segments_limits also modifies segmets_angles accordingly """ blanket1 = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180) blanket2 = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180, cut=blanket1) blanket1.nb_segments_limits = (4, 8) blanket2.nb_segments_limits = (3, 8) assert blanket2.volume != 0
def test_optimiser(self): blanket = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180) blanket.length_limits = (100, 300) blanket.nb_segments_limits = (2, 8) assert blanket.solid is not None def no_possible_config(): blanket.length_limits = (10, 20) blanket.nb_segments_limits = (2, 4) blanket.solid self.assertRaises(ValueError, no_possible_config)
def test_warning_segment_angles(self): blanket = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=1, stop_angle=50, rotation_angle=180) def warning1(): blanket.start_angle = 1 blanket.stop_angle = 50 blanket.num_segments = None blanket.segments_angles = [0, 25, 50, 90, 130, 150, 180] def warning2(): blanket.start_angle = None blanket.stop_angle = None blanket.num_segments = 7 blanket.segments_angles = [0, 25, 50, 90, 130, 150, 180] self.assertWarns(UserWarning, warning1) self.assertWarns(UserWarning, warning2)
def test_creation_with_optimiser(self): # Default blanket = paramak.BlanketFPPoloidalSegments( thickness=20, start_angle=0, stop_angle=180, rotation_angle=180) assert blanket.solid is not None # With limits blanket.length_limits = (10, 300) blanket.nb_segments_limits = (4, 8) assert blanket.solid is not None # With None length_limits blanket.length_limits = None blanket.nb_segments_limits = (4, 8) assert blanket.solid is not None # With None nb_segments_limits blanket.start_angle = 80 blanket.length_limits = (100, 300) blanket.nb_segments_limits = None assert blanket.solid is not None