@@ -191,3 +191,52 @@ def __init__(self):
191191 ), f"Expected 1 element in pair_list_new, got { len (comp .pair_list_new )} : { comp .pair_list_new } "
192192 assert comp .pair_list_old == ["Cu" ]
193193 assert comp .pair_list_new == ["Al" ]
194+
195+
196+ def test_create_composition_array_single_non_reference ():
197+ """Test that single composition value different from reference is not marked as reference"""
198+ from calphy .phase_diagram import _create_composition_array
199+
200+ # Test: reference=0.0, single comp=1.0 (should NOT be marked as reference)
201+ comp_arr , is_reference = _create_composition_array (
202+ comp_range = 1.0 ,
203+ interval = 0.1 ,
204+ reference = 0.0
205+ )
206+
207+ assert len (comp_arr ) == 1
208+ assert comp_arr [0 ] == 1.0
209+ assert is_reference [0 ] == False , "Single composition at 1.0 should not be marked as reference when reference=0.0"
210+
211+
212+ def test_create_composition_array_single_is_reference ():
213+ """Test that single composition value equal to reference IS marked as reference"""
214+ from calphy .phase_diagram import _create_composition_array
215+
216+ # Test: reference=0.0, single comp=0.0 (SHOULD be marked as reference)
217+ comp_arr , is_reference = _create_composition_array (
218+ comp_range = 0.0 ,
219+ interval = 0.1 ,
220+ reference = 0.0
221+ )
222+
223+ assert len (comp_arr ) == 1
224+ assert comp_arr [0 ] == 0.0
225+ assert is_reference [0 ] == True , "Single composition at 0.0 should be marked as reference when reference=0.0"
226+
227+
228+ def test_create_composition_array_range ():
229+ """Test composition array creation with range"""
230+ from calphy .phase_diagram import _create_composition_array
231+
232+ # Test: reference=0.0, range [0.0, 1.0], interval=0.25
233+ comp_arr , is_reference = _create_composition_array (
234+ comp_range = [0.0 , 1.0 ],
235+ interval = 0.25 ,
236+ reference = 0.0
237+ )
238+
239+ assert len (comp_arr ) == 5 # 0.0, 0.25, 0.5, 0.75, 1.0
240+ assert is_reference [0 ] == True # 0.0 is reference
241+ assert all (not ref for ref in is_reference [1 :]) # Others are not reference
242+
0 commit comments