Spaces:
Sleeping
Sleeping
| import type { ThemeExtractionResult } from '@/schema/theme-extraction'; | |
| /** | |
| * 有効なテーマデータを生成 | |
| */ | |
| export function createValidTheme(): ThemeExtractionResult { | |
| return { | |
| colors: { | |
| // メインカラー | |
| primary_color: '#5a6c7d', | |
| secondary_color: '#f8f9fa', | |
| accent_color: '#f59e0b', | |
| // セマンティックカラー | |
| success_semantic_color: '#10b981', | |
| warning_semantic_color: '#f59e0b', | |
| error_semantic_color: '#ef4444', | |
| info_semantic_color: '#3b82f6', | |
| // 背景色 | |
| primary_background_color: '#ffffff', | |
| secondary_background_color: '#f8f9fa', | |
| tertiary_background_color: '#222222', | |
| overlay_background_color: '#000000', | |
| // テキスト色 | |
| primary_text_color: '#222222', | |
| secondary_text_color: '#555555', | |
| disabled_text_color: '#999999', | |
| inverse_text_color: '#ffffff', | |
| }, | |
| design: { | |
| heading_font_family: 'YuGothic, "Yu Gothic Medium", sans-serif', | |
| main_font_family: 'YuGothic, "Yu Gothic Medium", sans-serif', | |
| special_font_family: 'YuGothic, "Yu Gothic Medium", sans-serif', | |
| design_style: 'modern', | |
| layout_type: 'standard', | |
| }, | |
| brand: { | |
| brand_impression: ['professional', 'corporate', 'business'], | |
| industry_characteristics: 'business oriented design', | |
| }, | |
| analysis_notes: 'Valid theme for testing', | |
| }; | |
| } | |
| /** | |
| * 無効なカラーコードを含むテーマデータを生成 | |
| */ | |
| export function createInvalidColorTheme(): ThemeExtractionResult { | |
| const theme = createValidTheme(); | |
| return { | |
| ...theme, | |
| colors: { | |
| ...theme.colors, | |
| primary_color: 'invalid-color', | |
| secondary_color: '#gggggg', | |
| primary_text_color: 'red', | |
| accent_color: '#xyz', | |
| }, | |
| }; | |
| } | |
| /** | |
| * 低コントラストテーマデータを生成 | |
| */ | |
| export function createLowContrastTheme(): ThemeExtractionResult { | |
| const theme = createValidTheme(); | |
| return { | |
| ...theme, | |
| colors: { | |
| ...theme.colors, | |
| primary_text_color: '#cccccc', | |
| primary_background_color: '#ffffff', | |
| secondary_text_color: '#dddddd', | |
| secondary_background_color: '#f5f5f5', | |
| }, | |
| }; | |
| } | |
| /** | |
| * 境界値テーマデータを生成 | |
| */ | |
| export function createBoundaryValueTheme(): ThemeExtractionResult { | |
| const theme = createValidTheme(); | |
| return { | |
| ...theme, | |
| colors: { | |
| ...theme.colors, | |
| primary_color: '#000000', | |
| secondary_color: '#ffffff', | |
| primary_text_color: '#ffffff', | |
| primary_background_color: '#000000', | |
| }, | |
| }; | |
| } | |
| /** | |
| * パフォーマンステスト用の大きなテーマデータを生成 | |
| */ | |
| export function createPerformanceTestTheme(): ThemeExtractionResult { | |
| const theme = createValidTheme(); | |
| return { | |
| ...theme, | |
| analysis_notes: 'A'.repeat(10000), // 大きなテキストデータ | |
| // カラーは既存のスキーマ準拠のものをそのまま使用 | |
| }; | |
| } | |