1+ import os
12from hued .palettes import ColorPalette
23
34def test_generate_complementary ():
@@ -119,6 +120,74 @@ def test_generate_random_hex_colors():
119120 assert isinstance (result , list ), "Expected a list for the random HEX colors."
120121 print ("Random HEX Colors:" , result )
121122
123+ def test_generate_gradient ():
124+ print ("Testing Gradient Generation..." )
125+ base_color = (255 , 60 , 52 ) # Example base color (Red)
126+ palette = ColorPalette (base_color )
127+ start_color = (255 , 60 , 52 ) # Start color (Red)
128+ end_color = (51 , 247 , 255 ) # End color (Cyan)
129+ expected_gradient = [
130+ (255 , 60 , 52 ),
131+ (214 , 97 , 92 ),
132+ (173 , 134 , 133 ),
133+ (132 , 172 , 173 ),
134+ (91 , 209 , 214 ),
135+ (51 , 247 , 255 )
136+ ]
137+ result = palette .generate_gradient (start_color , end_color , steps = 5 )
138+ assert result == expected_gradient , f"Expected { expected_gradient } , but got { result } "
139+ print (f"Gradient: { result } " )
140+
141+ def test_export_palette ():
142+ print ("Testing Palette Export..." )
143+ base = (255 , 60 , 52 ) # Red
144+ cp = ColorPalette (base )
145+
146+ # 1. Export a simple list palette (e.g., complementary)
147+ print ("Generating Complementary..." )
148+ comp_palette = cp .generate_complementary () # self.palette is now the complementary list
149+ print (f"Current Palette (Complementary List): { cp .palette } " )
150+ try :
151+ cp .export_palette ("complementary_palette.json" )
152+ cp .export_palette ("complementary_palette.txt" )
153+ cp .export_palette ("complementary_palette.csv" )
154+ print ("Exported complementary list palette." )
155+ except Exception as e :
156+ print (f"Error exporting complementary: { e } " )
157+
158+
159+ # 2. Generate and export a complex dictionary palette
160+ print ("\n Generating Random Palette Dictionary..." )
161+ # Generate the dict and set it as the current palette
162+ random_palette_dict = cp .generate_random_palette ()
163+ print (f"Current Palette (Random Dict): Keys = { cp .palette .keys ()} " )
164+ try :
165+ cp .export_palette ("random_palette_structure.json" )
166+ cp .export_palette ("random_palette_structure.txt" )
167+ cp .export_palette ("random_palette_structure.csv" )
168+ print ("Exported random dictionary palette." )
169+ except Exception as e :
170+ print (f"Error exporting random dict: { e } " )
171+
172+ # 3. Generate a gradient (doesn't modify self.palette) and export it separately
173+ print ("\n Generating Gradient..." )
174+ gradient = cp .generate_gradient ((255 , 0 , 0 ), (0 , 0 , 255 ), steps = 5 )
175+ # To export the gradient, temporarily set it as the palette
176+ original_palette = cp .palette # Save current palette
177+ cp .palette = gradient
178+ print (f"Current Palette (Gradient List): { cp .palette } " )
179+ try :
180+ cp .export_palette ("gradient_palette.json" )
181+ cp .export_palette ("gradient_palette.txt" )
182+ cp .export_palette ("gradient_palette.csv" )
183+ print ("Exported gradient list palette." )
184+ except Exception as e :
185+ print (f"Error exporting gradient: { e } " )
186+ finally :
187+ cp .palette = original_palette # Restore previous palette
188+
189+ print ("\Exporting complete." )
190+
122191def run_tests ():
123192 test_generate_complementary ()
124193 test_generate_analogous ()
@@ -131,6 +200,8 @@ def run_tests():
131200 test_generate_random_palette ()
132201 test_generate_random_color ()
133202 test_generate_random_hex_colors ()
203+ test_generate_gradient ()
204+ test_export_palette ()
134205 print ("All tests passed!" )
135206
136207if __name__ == "__main__" :
0 commit comments