aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/GlyphRunTest.cpp
blob: 46b4715c61c9bb904430b171d26d1324409934f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
 * Copyright 2018 The Android Open Source Project
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#include "SkGlyphRun.h"

#include "SkTextBlob.h"

#include "Test.h"

DEF_TEST(GlyphSetBasic, reporter) {
    SkGlyphSet set;

    std::vector<SkGlyphID> unique;

    set.reuse(10, &unique);
    REPORTER_ASSERT(reporter, set.add(7) == 0);
    REPORTER_ASSERT(reporter, set.add(3) == 1);
    set.reuse(10, &unique);
    REPORTER_ASSERT(reporter, set.add(5) == 0);
    REPORTER_ASSERT(reporter, set.add(8) == 1);
    REPORTER_ASSERT(reporter, set.add(3) == 2);

    REPORTER_ASSERT(reporter, unique.size() == 5);
    REPORTER_ASSERT(reporter, unique[0] == 7);
    REPORTER_ASSERT(reporter, unique[1] == 3);
    REPORTER_ASSERT(reporter, unique[2] == 5);
    REPORTER_ASSERT(reporter, unique[3] == 8);
    REPORTER_ASSERT(reporter, unique[4] == 3);
}

DEF_TEST(GlyphRunBasic, reporter) {
    SkGlyphID glyphs[] = {100, 3, 240, 3, 234, 111, 3, 4, 10, 11};
    uint16_t count = SK_ARRAY_COUNT(glyphs);

    SkPaint paint;
    paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);

    SkGlyphRunBuilder builder;
    builder.prepareDrawText(paint, glyphs, count, SkPoint::Make(0, 0));
}