Skip to content

Commit 284fabe

Browse files
Material Engcopybara-github
Material Eng
authored andcommitted
Add unit tests for Scheme Rainbow.
PiperOrigin-RevId: 655062545
1 parent c8bc9f9 commit 284fabe

File tree

1 file changed

+180
-0
lines changed

1 file changed

+180
-0
lines changed

swift/Tests/MaterialColorUtilitiesTests/SchemeTests/SchemeRainbowTests.swift

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,186 @@ import XCTest
1818
@testable import MaterialColorUtilities
1919

2020
final class SchemeRainbowTests: XCTestCase {
21+
func testKeyColors() {
22+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 0.0)
23+
24+
XCTAssertEqual(scheme.primaryPaletteKeyColor, 0xff69_6FC4)
25+
XCTAssertEqual(scheme.secondaryPaletteKeyColor, 0xff75_758B)
26+
XCTAssertEqual(scheme.tertiaryPaletteKeyColor, 0xff93_6B84)
27+
XCTAssertEqual(scheme.neutralPaletteKeyColor, 0xff77_7777)
28+
XCTAssertEqual(scheme.neutralVariantPaletteKeyColor, 0xff77_7777)
29+
}
30+
31+
func testLightTheme_minContrast_primary() {
32+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: -1.0)
33+
XCTAssertEqual(scheme.primary, 0xff67_6DC1)
34+
}
35+
36+
func testLightTheme_standardContrast_primary() {
37+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 0.0)
38+
XCTAssertEqual(scheme.primary, 0xff50_56A9)
39+
}
40+
41+
func testLightTheme_maxContrast_primary() {
42+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 1.0)
43+
XCTAssertEqual(scheme.primary, 0xff1b_2074)
44+
}
45+
46+
func testLightTheme_minContrast_primaryContainer() {
47+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: -1.0)
48+
XCTAssertEqual(scheme.primaryContainer, 0xffd5_d6ff)
49+
}
50+
51+
func testLightTheme_standardContrast_primaryContainer() {
52+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 0.0)
53+
XCTAssertEqual(scheme.primaryContainer, 0xffE0_E0FF)
54+
}
55+
56+
func testLightTheme_maxContrast_primaryContainer() {
57+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 1.0)
58+
XCTAssertEqual(scheme.primaryContainer, 0xff3a_4092)
59+
}
60+
61+
func testLightTheme_minContrast_tertiaryContainer() {
62+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: -1.0)
63+
XCTAssertEqual(scheme.tertiaryContainer, 0xfffb_cbe7)
64+
}
65+
66+
func testLightTheme_standardContrast_tertiaryContainer() {
67+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 0.0)
68+
XCTAssertEqual(scheme.tertiaryContainer, 0xffff_d8ee)
69+
}
70+
71+
func testLightTheme_maxContrast_tertiaryContainer() {
72+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 1.0)
73+
XCTAssertEqual(scheme.tertiaryContainer, 0xff61_3e55)
74+
}
75+
76+
func testLightTheme_minContrast_onPrimaryContainer() {
77+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: -1.0)
78+
XCTAssertEqual(scheme.onPrimaryContainer, 0xff6c_72c7)
79+
}
80+
81+
func testLightTheme_standardContrast_onPrimaryContainer() {
82+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 0.0)
83+
XCTAssertEqual(scheme.onPrimaryContainer, 0xff38_3e8f)
84+
}
85+
86+
func testLightTheme_maxContrast_onPrimaryContainer() {
87+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 1.0)
88+
XCTAssertEqual(scheme.onPrimaryContainer, 0xffff_ffff)
89+
}
90+
91+
func testLightTheme_minContrast_surface() {
92+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: -1.0)
93+
XCTAssertEqual(scheme.surface, 0xfff9_f9f9)
94+
}
95+
96+
func testLightTheme_standardContrast_surface() {
97+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 0.0)
98+
XCTAssertEqual(scheme.surface, 0xfff9_f9f9)
99+
}
100+
101+
func testLightTheme_maxContrast_surface() {
102+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 1.0)
103+
XCTAssertEqual(scheme.surface, 0xfff9_f9f9)
104+
}
105+
106+
func testLightTheme_standardContrast_secondary() {
107+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 0.0)
108+
XCTAssertEqual(scheme.secondary, 0xff5c_5d72)
109+
}
110+
111+
func testLightTheme_standardContrast_secondaryContainer() {
112+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: false, contrastLevel: 0.0)
113+
XCTAssertEqual(scheme.secondaryContainer, 0xffe1_e0f9)
114+
}
115+
116+
func testDarkTheme_minContrast_primary() {
117+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: -1.0)
118+
XCTAssertEqual(scheme.primary, 0xff83_89e0)
119+
}
120+
121+
func testDarkTheme_standardContrast_primary() {
122+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 0.0)
123+
XCTAssertEqual(scheme.primary, 0xffbe_c2ff)
124+
}
125+
126+
func testDarkTheme_maxContrast_primary() {
127+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 1.0)
128+
XCTAssertEqual(scheme.primary, 0xfff0_eeff)
129+
}
130+
131+
func testDarkTheme_minContrast_primaryContainer() {
132+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: -1.0)
133+
XCTAssertEqual(scheme.primaryContainer, 0xff2a_3082)
134+
}
135+
136+
func testDarkTheme_standardContrast_primaryContainer() {
137+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 0.0)
138+
XCTAssertEqual(scheme.primaryContainer, 0xff38_3E8F)
139+
}
140+
141+
func testDarkTheme_maxContrast_primaryContainer() {
142+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 1.0)
143+
XCTAssertEqual(scheme.primaryContainer, 0xffba_bdff)
144+
}
145+
146+
func testDarkTheme_minContrast_onPrimaryContainer() {
147+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: -1.0)
148+
XCTAssertEqual(scheme.onPrimaryContainer, 0xff76_7cd2)
149+
}
150+
151+
func testDarkTheme_standardContrast_onPrimaryContainer() {
152+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 0.0)
153+
XCTAssertEqual(scheme.onPrimaryContainer, 0xffe0_e0ff)
154+
}
155+
156+
func testDarkTheme_maxContrast_onPrimaryContainer() {
157+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 1.0)
158+
XCTAssertEqual(scheme.onPrimaryContainer, 0xff00_003d)
159+
}
160+
161+
func testDarkTheme_minContrast_onTertiaryContainer() {
162+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: -1.0)
163+
XCTAssertEqual(scheme.onTertiaryContainer, 0xffa1_7891)
164+
}
165+
166+
func testDarkTheme_standardContrast_onTertiaryContainer() {
167+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 0.0)
168+
XCTAssertEqual(scheme.onTertiaryContainer, 0xffff_d8ee)
169+
}
170+
171+
func testDarkTheme_maxContrast_onTertiaryContainer() {
172+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 1.0)
173+
XCTAssertEqual(scheme.onTertiaryContainer, 0xff1b_0315)
174+
}
175+
176+
func testDarkTheme_minContrast_surface() {
177+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: -1.0)
178+
XCTAssertEqual(scheme.surface, 0xff13_1313)
179+
}
180+
181+
func testDarkTheme_standardContrast_surface() {
182+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 0.0)
183+
XCTAssertEqual(scheme.surface, 0xff13_1313)
184+
}
185+
186+
func testDarkTheme_maxContrast_surface() {
187+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 1.0)
188+
XCTAssertEqual(scheme.surface, 0xff13_1313)
189+
}
190+
191+
func testDarkTheme_standardContrast_secondary() {
192+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 0.0)
193+
XCTAssertEqual(scheme.secondary, 0xffc5_c4dd)
194+
}
195+
196+
func testDarkTheme_standardContrast_secondaryContainer() {
197+
let scheme = SchemeRainbow(sourceColorHct: Hct(0xff00_00ff), isDark: true, contrastLevel: 0.0)
198+
XCTAssertEqual(scheme.secondaryContainer, 0xff44_4559)
199+
}
200+
21201
func testSchemeRainbowProvider_returnsIdeniticalSchemeWithSameSourceColor() {
22202
let sourceColorHct = Hct(0xfffa_2bec)
23203
let isDark = false

0 commit comments

Comments
 (0)