Lines Matching refs:result
74 std::u16string result;
75 result += u"\u202E";
77 result += text[i - 1];
79 //result += u"\u202C";
80 return result;
84 std::u16string result;
85 result += u"\u202D";
87 result += ch;
89 return result;
161 void drawRects(SkColor color, std::vector<TextBox>& result, bool fill = false) {
170 for (auto& r : result) {
189 void drawLines(SkColor color, std::vector<TextBox>& result) {
191 for (auto& r : result) {
2670 auto result = paragraph->getRectsForRange(0, 0, heightStyle, widthStyle);
2671 REPORTER_ASSERT(reporter, result.empty());
2674 auto result = paragraph->getRectsForRange(0, 1, heightStyle, widthStyle);
2675 canvas.drawRects(SK_ColorRED, result);
2676 REPORTER_ASSERT(reporter, result.size() == 1);
2677 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 0, EPSILON100));
2678 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
2679 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 28.417f, EPSILON100));
2680 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
2683 auto result = paragraph->getRectsForRange(2, 8, heightStyle, widthStyle);
2684 canvas.drawRects(SK_ColorBLUE, result);
2685 REPORTER_ASSERT(reporter, result.size() == 1);
2686 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 56.835f, EPSILON100));
2687 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
2688 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 177.97f, EPSILON100));
2689 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
2692 auto result = paragraph->getRectsForRange(8, 21, heightStyle, widthStyle);
2693 canvas.drawRects(SK_ColorGREEN, result);
2694 REPORTER_ASSERT(reporter, result.size() == 1);
2695 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 177.97f, EPSILON100));
2696 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
2697 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 507.031f, EPSILON100));
2698 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
2701 auto result = paragraph->getRectsForRange(30, 100, heightStyle, widthStyle);
2702 canvas.drawRects(SK_ColorRED, result);
2703 REPORTER_ASSERT(reporter, result.size() == 4);
2704 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 211.375f, EPSILON100));
2705 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 59.40625f, EPSILON100));
2706 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 463.623f, EPSILON100));
2707 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 118, EPSILON100));
2708 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.left(), 0, EPSILON100));
2709 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.top(), 236.406f, EPSILON100));
2710 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.right(), 142.089f, EPSILON100));
2711 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.bottom(), 295, EPSILON100));
2714 auto result = paragraph->getRectsForRange(19, 22, heightStyle, widthStyle);
2715 canvas.drawRects(SK_ColorBLUE, result);
2716 REPORTER_ASSERT(reporter, result.size() == 1);
2717 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 450.1875f, EPSILON20));
2718 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
2719 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 519.47266f, EPSILON20));
2720 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
2723 auto result = paragraph->getRectsForRange(21, 21, heightStyle, widthStyle);
2724 REPORTER_ASSERT(reporter, result.empty());
2767 auto result = paragraph->getRectsForRange(0, 0, heightStyle, widthStyle);
2768 REPORTER_ASSERT(reporter, result.empty());
2771 auto result = paragraph->getRectsForRange(0, 1, heightStyle, widthStyle);
2772 canvas.drawRects(SK_ColorRED, result);
2773 REPORTER_ASSERT(reporter, result.size() == 1);
2774 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 0, EPSILON100));
2775 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0, EPSILON100));
2776 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 16.898f, EPSILON100));
2777 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 74, EPSILON100));
2780 auto result = paragraph->getRectsForRange(2, 8, heightStyle, widthStyle);
2781 canvas.drawRects(SK_ColorBLUE, result);
2782 REPORTER_ASSERT(reporter, result.size() == 1);
2783 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 66.899f, EPSILON100));
2784 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0, EPSILON100));
2785 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 264.099f, EPSILON100));
2786 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 74, EPSILON100));
2789 auto result = paragraph->getRectsForRange(8, 21, heightStyle, widthStyle);
2790 canvas.drawRects(SK_ColorGREEN, result);
2791 REPORTER_ASSERT(reporter, result.size() == 2);
2792 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 264.099f, EPSILON100));
2793 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0, EPSILON100));
2794 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 595.085f, EPSILON50));
2795 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 74, EPSILON100));
2835 auto result = paragraph->getRectsForRange(0, 0, heightStyle, widthStyle);
2836 REPORTER_ASSERT(reporter, result.empty());
2840 auto result = paragraph->getRectsForRange(0, 1, heightStyle, widthStyle);
2841 canvas.drawRects(SK_ColorRED, result);
2842 REPORTER_ASSERT(reporter, result.size() == 1);
2843 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 0, EPSILON100));
2844 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946615f, EPSILON100));
2845 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 17.4296889f, EPSILON100));
2846 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 88.473305f, EPSILON100));
2849 auto result = paragraph->getRectsForRange(2, 8, heightStyle, widthStyle);
2850 canvas.drawRects(SK_ColorBLUE, result);
2851 REPORTER_ASSERT(reporter, result.size() == 1);
2852 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 67.429688f, EPSILON100));
2853 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946615f, EPSILON100));
2854 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 190.00781f, EPSILON100));
2855 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 88.473305f, EPSILON100));
2858 auto result = paragraph->getRectsForRange(8, 21, heightStyle, widthStyle);
2859 canvas.drawRects(SK_ColorGREEN, result);
2860 REPORTER_ASSERT(reporter, result.size() == 1);
2861 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 190.00781f, EPSILON20));
2862 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946615f, EPSILON100));
2863 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 508.0625f, EPSILON20));
2864 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 88.473305f, EPSILON100));
2867 auto result = paragraph->getRectsForRange(30, 150, heightStyle, widthStyle);
2868 canvas.drawRects(SK_ColorRED, result);
2869 REPORTER_ASSERT(reporter, result.size() == 8);
2871 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 190.00781f, EPSILON20));
2872 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 88.473305f, EPSILON100));
2873 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 525.687f, EPSILON20));
2874 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 168.47331f, EPSILON100));
2876 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.left(), 525.687f, EPSILON20));
2877 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.top(), 88.473305f, EPSILON100));
2878 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.right(), 570.02344f, EPSILON20));
2879 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.bottom(), 168.47331f, EPSILON100));
2881 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.left(), 0, EPSILON100));
2882 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.top(), 168.47331f, EPSILON100));
2883 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.right(), 531.574f, EPSILON20));
2884 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.bottom(), 248.47331f, EPSILON100));
2886 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.left(), 531.574f, EPSILON20));
2887 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.top(), 168.47331f, EPSILON100));
2888 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.right(), 570.02344f, EPSILON20));
2889 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.bottom(), 248.47331f, EPSILON100));
2891 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.left(), 0, EPSILON100));
2892 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.top(), 248.47331f, EPSILON100));
2893 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.right(), 570.02344f, EPSILON20));
2894 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.bottom(), 328.47333f, EPSILON100));
2896 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.left(), 0, EPSILON100));
2897 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.top(), 328.47333f, EPSILON100));
2898 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.right(), 570.02344f, EPSILON20));
2899 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.bottom(), 408.4733f, EPSILON100));
2902 auto result = paragraph->getRectsForRange(19, 22, heightStyle, widthStyle);
2903 canvas.drawRects(SK_ColorBLUE, result);
2904 REPORTER_ASSERT(reporter, result.size() == 2); // DIFF
2905 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 463.72656f, EPSILON20));
2906 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946615f, EPSILON100));
2907 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 530.23047f, EPSILON20));
2908 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 88.473305f, EPSILON100));
2910 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.left(), 530.23047f, EPSILON20));
2911 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.top(), 16.946615f, EPSILON100));
2912 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.right(), 570.02344f, EPSILON20));
2913 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.bottom(), 88.473305f, EPSILON100));
2916 auto result = paragraph->getRectsForRange(21, 21, heightStyle, widthStyle);
2917 REPORTER_ASSERT(reporter, result.empty());
2957 auto result = paragraph->getRectsForRange(0, 0, heightStyle, widthStyle);
2958 REPORTER_ASSERT(reporter, result.empty());
2962 auto result = paragraph->getRectsForRange(0, 1, heightStyle, widthStyle);
2963 canvas.drawRects(SK_ColorRED, result);
2964 REPORTER_ASSERT(reporter, result.size() == 1);
2965 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 0, EPSILON100));
2966 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946615f, EPSILON100));
2967 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 17.4296889f, EPSILON100));
2968 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 80, EPSILON100));
2971 auto result = paragraph->getRectsForRange(2, 8, heightStyle, widthStyle);
2972 canvas.drawRects(SK_ColorBLUE, result);
2973 REPORTER_ASSERT(reporter, result.size() == 1);
2974 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 67.429688f, EPSILON100));
2975 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946615f, EPSILON100));
2976 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 190.00781f, EPSILON100));
2977 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 80, EPSILON100));
2980 auto result = paragraph->getRectsForRange(8, 21, heightStyle, widthStyle);
2981 canvas.drawRects(SK_ColorGREEN, result);
2982 REPORTER_ASSERT(reporter, result.size() == 1);
2983 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 190.00781f, EPSILON100));
2984 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946615f, EPSILON100));
2985 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 508.0625f, EPSILON50));
2986 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 80, EPSILON100));
2989 auto result = paragraph->getRectsForRange(30, 150, heightStyle, widthStyle);
2990 canvas.drawRects(SK_ColorMAGENTA, result);
2991 REPORTER_ASSERT(reporter, result.size() == 8);
2993 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 190.00781f, EPSILON100));
2994 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 80, EPSILON100));
2995 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 525.687f, EPSILON20));
2996 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 160, EPSILON100));
2998 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.left(), 525.687f, EPSILON20));
2999 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.top(), 80, EPSILON100));
3000 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.right(), 570.02344f, EPSILON20));
3001 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.bottom(), 160, EPSILON100));
3003 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.left(), 0, EPSILON100));
3004 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.top(), 160, EPSILON100));
3005 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.right(), 531.574f, EPSILON20));
3006 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.bottom(), 240, EPSILON100));
3008 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.left(), 531.574f, EPSILON20));
3009 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.top(), 160, EPSILON100));
3010 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.right(), 570.02344f, EPSILON20));
3011 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.bottom(), 240, EPSILON100));
3013 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.left(), 0, EPSILON100));
3014 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.top(), 240, EPSILON100));
3015 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.right(), 570.02344f, EPSILON20));
3016 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.bottom(), 320, EPSILON100));
3018 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.left(), 0, EPSILON100));
3019 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.top(), 320, EPSILON100));
3020 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.right(), 570.02344f, EPSILON20));
3021 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.bottom(), 400, EPSILON100));
3024 auto result = paragraph->getRectsForRange(19, 22, heightStyle, widthStyle);
3025 canvas.drawRects(SK_ColorBLACK, result);
3026 REPORTER_ASSERT(reporter, result.size() == 2); // DIFF
3027 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 463.72656f, EPSILON20));
3028 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946615f, EPSILON100));
3029 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 530.23047f, EPSILON20));
3030 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 80, EPSILON100));
3032 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.left(), 530.23047f, EPSILON50));
3033 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.top(), 16.946615f, EPSILON100));
3034 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.right(), 570.02344f, EPSILON20));
3035 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.bottom(), 80, EPSILON100));
3038 auto result = paragraph->getRectsForRange(21, 21, heightStyle, widthStyle);
3039 REPORTER_ASSERT(reporter, result.empty());
3079 auto result = paragraph->getRectsForRange(0, 0, heightStyle, widthStyle);
3080 REPORTER_ASSERT(reporter, result.empty());
3084 auto result = paragraph->getRectsForRange(0, 1, heightStyle, widthStyle);
3085 canvas.drawRects(SK_ColorRED, result);
3086 REPORTER_ASSERT(reporter, result.size() == 1);
3087 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 0, EPSILON100));
3088 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946f, EPSILON100));
3089 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 17.429f, EPSILON100));
3090 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 96.946f, EPSILON100));
3093 auto result = paragraph->getRectsForRange(2, 8, heightStyle, widthStyle);
3094 canvas.drawRects(SK_ColorBLUE, result);
3095 REPORTER_ASSERT(reporter, result.size() == 1);
3096 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 67.4298f, EPSILON100));
3097 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946f, EPSILON100));
3098 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 190.007f, EPSILON100));
3099 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 96.946f, EPSILON100));
3102 auto result = paragraph->getRectsForRange(8, 21, heightStyle, widthStyle);
3103 canvas.drawRects(SK_ColorGREEN, result);
3104 REPORTER_ASSERT(reporter, result.size() == 1);
3105 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 190.007f, EPSILON100));
3106 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946f, EPSILON100));
3107 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 508.062f, EPSILON50));
3108 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 96.946f, EPSILON100));
3111 auto result = paragraph->getRectsForRange(30, 150, heightStyle, widthStyle);
3112 canvas.drawRects(SK_ColorMAGENTA, result);
3113 REPORTER_ASSERT(reporter, result.size() == 8);
3115 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 190.007f, EPSILON20));
3116 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 96.946f, EPSILON100));
3117 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 525.687f, EPSILON20));
3118 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 176.946f, EPSILON100));
3120 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.left(), 525.687f, EPSILON20));
3121 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.top(), 96.946f, EPSILON100));
3122 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.right(), 570.023f, EPSILON20));
3123 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.bottom(), 176.946f, EPSILON100));
3125 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.left(), 0, EPSILON20));
3126 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.top(), 176.946f, EPSILON100));
3127 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.right(), 531.574f, EPSILON20));
3128 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[2].rect.bottom(), 256.946f, EPSILON100));
3130 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.left(), 531.574f, EPSILON20));
3131 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.top(), 176.946f, EPSILON100));
3132 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.right(), 570.023f, EPSILON20));
3133 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[3].rect.bottom(), 256.946f, EPSILON100));
3135 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.left(), 0, EPSILON20));
3136 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.top(), 256.946f, EPSILON100));
3137 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.right(), 570.023f, EPSILON20));
3138 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[4].rect.bottom(), 336.946f, EPSILON100));
3140 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.left(), 0, EPSILON20));
3141 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.top(), 336.946f, EPSILON100));
3142 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.right(), 570.023f, EPSILON20));
3143 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[5].rect.bottom(), 416.946f, EPSILON100));
3146 auto result = paragraph->getRectsForRange(19, 22, heightStyle, widthStyle);
3147 canvas.drawRects(SK_ColorBLACK, result);
3148 REPORTER_ASSERT(reporter, result.size() == 2); // DIFF
3149 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 463.726f, EPSILON20));
3150 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 16.946f, EPSILON100));
3151 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 530.230f, EPSILON20));
3152 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 96.946f, EPSILON100));
3154 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.left(), 530.230f, EPSILON20));
3155 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.top(), 16.946f, EPSILON100));
3156 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.right(), 570.023f, EPSILON20));
3157 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[1].rect.bottom(), 96.946f, EPSILON100));
3160 auto result = paragraph->getRectsForRange(21, 21, heightStyle, widthStyle);
3161 REPORTER_ASSERT(reporter, result.empty());
3202 auto result = paragraph->getRectsForRange(0, 0, heightStyle, widthStyle);
3203 REPORTER_ASSERT(reporter, result.empty());
3267 auto result = paragraph->getRectsForRange(0, 0, heightStyle, widthStyle);
3268 REPORTER_ASSERT(reporter, result.empty());
3272 auto result = paragraph->getRectsForRange(0, 1, heightStyle, widthStyle);
3273 canvas.drawRects(SK_ColorRED, result);
3274 REPORTER_ASSERT(reporter, result.size() == 1);
3275 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 203.955f, EPSILON100));
3276 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
3277 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 232.373f, EPSILON100));
3278 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
3282 auto result = paragraph->getRectsForRange(2, 4, heightStyle, widthStyle);
3283 canvas.drawRects(SK_ColorBLUE, result);
3284 REPORTER_ASSERT(reporter, result.size() == 1);
3285 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 260.791f, EPSILON100));
3286 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
3287 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 317.626f, EPSILON100));
3288 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
3292 auto result = paragraph->getRectsForRange(4, 5, heightStyle, widthStyle);
3293 canvas.drawRects(SK_ColorGREEN, result);
3294 REPORTER_ASSERT(reporter, result.size() == 1);
3295 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 317.626f, EPSILON100));
3296 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
3297 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 346.044f, EPSILON100));
3298 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
3302 auto result = paragraph->getRectsForRange(4, 6, heightStyle, widthStyle);
3303 canvas.drawRects(SK_ColorBLACK, result);
3304 REPORTER_ASSERT(reporter, result.size() == 1); // DIFF
3305 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 317.626f, EPSILON100));
3306 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
3307 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 358.494f, EPSILON100));
3308 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
3312 auto result = paragraph->getRectsForRange(5, 6, heightStyle, widthStyle);
3313 canvas.drawRects(SK_ColorRED, result);
3314 REPORTER_ASSERT(reporter, result.size() == 1);
3315 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 346.044f, EPSILON100));
3316 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
3317 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 358.494f, EPSILON100));
3318 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
3322 auto result = paragraph->getRectsForRange(21, 21, heightStyle, widthStyle);
3323 REPORTER_ASSERT(reporter, result.empty());
3364 auto result = paragraph->getRectsForRange(0, 0, heightStyle, widthStyle);
3365 REPORTER_ASSERT(reporter, result.empty());
3369 auto result = paragraph->getRectsForRange(0, 1, heightStyle, widthStyle);
3370 canvas.drawRects(SK_ColorRED, result);
3371 REPORTER_ASSERT(reporter, result.size() == 1);
3372 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 203.955f, EPSILON100));
3373 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, EPSILON100));
3374 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 232.373f, EPSILON100));
3375 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, EPSILON100));
3379 auto result = paragraph->getRectsForRange(6, 7, heightStyle, widthStyle);
3380 canvas.drawRects(SK_ColorBLUE, result);
3381 REPORTER_ASSERT(reporter, result.size() == 1);
3382 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 275.0f, EPSILON100));
3383 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 59.406f, EPSILON100));
3384 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 275.0f, EPSILON100));
3385 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 118, EPSILON100));
3428 auto result = paragraph->getRectsForRange(0, 0, heightStyle, widthStyle);
3429 REPORTER_ASSERT(reporter, result.empty());
3432 auto result = paragraph->getRectsForRange(0, 1, heightStyle, widthStyle);
3433 canvas.drawRects(SK_ColorRED, result);
3434 REPORTER_ASSERT(reporter, result.size() == 1);
3435 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 203.955f, epsilon));
3436 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, epsilon));
3437 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 232.373f, epsilon));
3438 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, epsilon));
3441 auto result = paragraph->getRectsForRange(2, 4, heightStyle, widthStyle);
3442 canvas.drawRects(SK_ColorBLUE, result);
3443 REPORTER_ASSERT(reporter, result.size() == 1);
3444 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 260.791f, epsilon));
3445 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, epsilon));
3446 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 317.626f, epsilon));
3447 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, epsilon));
3450 auto result = paragraph->getRectsForRange(4, 6, heightStyle, widthStyle);
3451 canvas.drawRects(SK_ColorGREEN, result);
3452 REPORTER_ASSERT(reporter, result.size() == 1);
3453 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 317.626f, epsilon));
3454 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, epsilon));
3455 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 358.494f, epsilon));
3456 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, epsilon));
3459 auto result = paragraph->getRectsForRange(5, 6, heightStyle, widthStyle);
3460 canvas.drawRects(SK_ColorYELLOW, result);
3461 REPORTER_ASSERT(reporter, result.size() == 1);
3462 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 346.044f, epsilon));
3463 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 0.40625f, epsilon));
3464 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 358.494f, epsilon));
3465 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 59, epsilon));
3468 auto result = paragraph->getRectsForRange(10, 12, heightStyle, widthStyle);
3469 canvas.drawRects(SK_ColorCYAN, result);
3470 REPORTER_ASSERT(reporter, result.size() == 1);
3471 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 218.164f, epsilon));
3472 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 59.40625f, epsilon));
3473 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 275, epsilon));
3474 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 118, epsilon));
3477 auto result = paragraph->getRectsForRange(14, 18, heightStyle, widthStyle);
3478 canvas.drawRects(SK_ColorBLACK, result);
3479 REPORTER_ASSERT(reporter, result.size() == 1);
3480 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 331.835f, epsilon));
3481 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 59.40625f, epsilon));
3482 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 419.189f, epsilon));
3483 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 118, epsilon));
3486 auto result = paragraph->getRectsForRange(21, 21, heightStyle, widthStyle);
3487 REPORTER_ASSERT(reporter, result.empty());
3522 auto result = paragraph->getRectsForRange(0, 10, RectHeightStyle::kTight, RectWidthStyle::kMax);
3523 canvas.drawRects(SK_ColorGREEN, result);
3524 REPORTER_ASSERT(reporter, result.size() == 1);
3528 auto result = paragraph->getRectsForRange(0, 10, RectHeightStyle::kStrut, RectWidthStyle::kMax);
3529 canvas.drawRects(SK_ColorRED, result);
3530 REPORTER_ASSERT(reporter, result.size() == 1);
3531 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.left(), 0, EPSILON100));
3532 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.top(), 10.611f, EPSILON2));
3533 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.right(), 118.605f, EPSILON50));
3534 REPORTER_ASSERT(reporter, SkScalarNearlyEqual(result[0].rect.bottom(), 27.017f, EPSILON2));
3944 auto result = paragraph->getRectsForRange(0, 0, rect_height_style, rect_width_style);
3945 REPORTER_ASSERT(reporter, result.size() == 0);
3947 result = paragraph->getRectsForRange(0, 119, rect_height_style, rect_width_style);
3948 REPORTER_ASSERT(reporter, result.size() == 2);
3949 canvas.drawRects(SK_ColorRED, result);
3951 result = paragraph->getRectsForRange(122, 132, rect_height_style, rect_width_style);
3952 REPORTER_ASSERT(reporter, result.size() == 0);
3954 canvas.drawRects(SK_ColorBLUE, result);
3957 result = paragraph->getRectsForRange(0, pos, rect_height_style, rect_width_style);
3958 REPORTER_ASSERT(reporter, result.size() == 2);
3959 canvas.drawRects(SK_ColorGREEN, result);
3962 result = paragraph->getRectsForRange(0, pos, rect_height_style, rect_width_style);
3963 REPORTER_ASSERT(reporter, result.size() == 2);
3964 canvas.drawRects(SK_ColorGREEN, result);
3967 result = paragraph->getRectsForRange(0, pos, rect_height_style, rect_width_style);
3968 REPORTER_ASSERT(reporter, result.size() == 2);
3969 canvas.drawRects(SK_ColorGREEN, result);
5239 auto result = paragraph->getRectsForPlaceholders();
5240 REPORTER_ASSERT(reporter, result.size() == 1);
5552 auto result = paragraph->getRectsForRange(0, strlen(text), RectHeightStyle::kTight, RectWidthStyle::kTight);
5558 canvas.get()->drawRect(result.front().rect, background);
6437 auto result = expected[metric.fLineNumber];
6438 REPORTER_ASSERT(reporter, metric.fStartIndex ==std::get<0>(result));
6439 REPORTER_ASSERT(reporter, metric.fEndExcludingWhitespaces == std::get<1>(result));
6440 REPORTER_ASSERT(reporter, metric.fEndIndex == std::get<2>(result));
6441 REPORTER_ASSERT(reporter, metric.fEndIncludingNewline == std::get<3>(result));
6512 auto result = expected[metric.fLineNumber];
6513 REPORTER_ASSERT(reporter, metric.fStartIndex == SkToU32(std::get<0>(result)));
6514 REPORTER_ASSERT(reporter, metric.fEndExcludingWhitespaces == SkToU32(std::get<1>(result)));
6515 REPORTER_ASSERT(reporter, metric.fEndIndex == SkToU32(std::get<2>(result)));
6516 REPORTER_ASSERT(reporter, metric.fEndIncludingNewline == SkToU32(std::get<3>(result)));
6548 auto result = paragraph->getGlyphPositionAtCoordinate(41.0f, 0.0f);
6549 REPORTER_ASSERT(reporter, result.position == 4 && result.affinity == Affinity::kDownstream);
7015 auto result = paragraph->getRectsForRange(0, 2, heightStyle, widthStyle);
7016 REPORTER_ASSERT(reporter, !result.empty());
7019 auto result = paragraph->getRectsForRange(5, 10, heightStyle, widthStyle);
7020 REPORTER_ASSERT(reporter, !result.empty());