7 #include "gtest/gtest.h"
9 #include "flutter/display_list/dl_color.h"
10 #include "flutter/display_list/dl_tile_mode.h"
11 #include "flutter/display_list/effects/dl_color_source.h"
17 TEST(PaintTest, OptionalStrokeWithFill) {
25 EXPECT_FALSE(paint.
GetStroke().has_value());
34 TEST(PaintTest, OptionalStrokeWithStroke) {
42 std::optional<StrokeParameters> optional_stroke = paint.
GetStroke();
43 EXPECT_TRUE(optional_stroke.has_value());
44 if (optional_stroke.has_value()) {
47 EXPECT_EQ(optional_stroke->width, 20.0f);
48 EXPECT_EQ(optional_stroke->miter_limit, 100.0f);
52 TEST(PaintTest, GradientStopConversion) {
54 std::vector<flutter::DlColor> colors = {flutter::DlColor::kBlue(),
55 flutter::DlColor::kRed(),
56 flutter::DlColor::kGreen()};
57 std::vector<float> stops = {0.0, 0.5, 1.0};
64 flutter::DlTileMode::kClamp,
68 std::vector<Color> converted_colors;
69 std::vector<Scalar> converted_stops;
78 TEST(PaintTest, GradientMissing0) {
79 std::vector<flutter::DlColor> colors = {flutter::DlColor::kBlue(),
80 flutter::DlColor::kRed()};
81 std::vector<float> stops = {0.5, 1.0};
88 flutter::DlTileMode::kClamp,
92 std::vector<Color> converted_colors;
93 std::vector<Scalar> converted_stops;
104 TEST(PaintTest, GradientMissingLastValue) {
105 std::vector<flutter::DlColor> colors = {flutter::DlColor::kBlue(),
106 flutter::DlColor::kRed()};
107 std::vector<float> stops = {0.0, .5};
108 const auto gradient =
114 flutter::DlTileMode::kClamp,
118 std::vector<Color> converted_colors;
119 std::vector<Scalar> converted_stops;
130 TEST(PaintTest, GradientStopGreaterThan1) {
131 std::vector<flutter::DlColor> colors = {flutter::DlColor::kBlue(),
132 flutter::DlColor::kGreen(),
133 flutter::DlColor::kRed()};
134 std::vector<float> stops = {0.0, 100, 1.0};
135 const auto gradient =
141 flutter::DlTileMode::kClamp,
145 std::vector<Color> converted_colors;
146 std::vector<Scalar> converted_stops;
156 TEST(PaintTest, GradientConversionNonMonotonic) {
157 std::vector<flutter::DlColor> colors = {
158 flutter::DlColor::kBlue(), flutter::DlColor::kGreen(),
159 flutter::DlColor::kGreen(), flutter::DlColor::kRed()};
160 std::vector<float> stops = {0.0, 0.5, 0.4, 1.0};
161 const auto gradient =
167 flutter::DlTileMode::kClamp,
171 std::vector<Color> converted_colors;
172 std::vector<Scalar> converted_stops;
TEST(AllocationSizeTest, CanCreateTypedAllocations)
constexpr bool ScalarNearlyEqual(Scalar x, Scalar y, Scalar tolerance=kEhCloseEnough)
std::optional< StrokeParameters > GetStroke() const
Return an optional StrokeParameters if this Paint is a stroked Paint, otherwise return a nullopt.
static void ConvertStops(const flutter::DlGradientColorSourceBase *gradient, std::vector< Color > &colors, std::vector< float > &stops)
Convert display list colors + stops into impeller colors and stops, taking care to ensure that the st...