1565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi/*
2565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi * Copyright (C) 2016 The Android Open Source Project
3565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi *
4565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi * Licensed under the Apache License, Version 2.0 (the "License");
5565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi * you may not use this file except in compliance with the License.
6565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi * You may obtain a copy of the License at
7565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi *
8565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi *      http://www.apache.org/licenses/LICENSE-2.0
9565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi *
10565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi * Unless required by applicable law or agreed to in writing, software
11565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi * distributed under the License is distributed on an "AS IS" BASIS,
12565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi * See the License for the specific language governing permissions and
14565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi * limitations under the License.
15565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi */
16565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
17565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi#include "AnimationParser.h"
18565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
19565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi#include <gtest/gtest.h>
20565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
21565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchiusing namespace android;
22565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
23565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien BargiacchiTEST(AnimationParserTest, Test_can_ignore_line) {
24565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(can_ignore_line(""));
25565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(can_ignore_line("     "));
26565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(can_ignore_line("#"));
27565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(can_ignore_line("   # comment"));
28565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
29565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(can_ignore_line("text"));
30565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(can_ignore_line("text # comment"));
31565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(can_ignore_line("     text"));
32565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(can_ignore_line("     text # comment"));
33565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi}
34565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
35565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien BargiacchiTEST(AnimationParserTest, Test_remove_prefix) {
36565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_STRING[] = "abcdef";
37565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    const char* rest = nullptr;
38565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(remove_prefix(TEST_STRING, "def", &rest));
39565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    // Ignore strings that only consist of the prefix
40565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(remove_prefix(TEST_STRING, TEST_STRING, &rest));
41565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
42565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(remove_prefix(TEST_STRING, "abc", &rest));
43565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_STREQ("def", rest);
44565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
45565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(remove_prefix("  abcdef", "abc", &rest));
46565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_STREQ("def", rest);
47565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi}
48565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
49565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien BargiacchiTEST(AnimationParserTest, Test_parse_text_field) {
50565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_FILE_NAME[] = "font_file";
51565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const int TEST_X = 3;
52565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const int TEST_Y = 6;
53565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const int TEST_R = 1;
54565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const int TEST_G = 2;
55565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const int TEST_B = 4;
56565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const int TEST_A = 8;
57565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
58565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_XCENT_YCENT[] = "c c 1 2 4 8  font_file ";
59565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_XCENT_YVAL[]  = "c 6 1 2 4 8  font_file ";
60565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_XVAL_YCENT[]  = "3 c 1 2 4 8  font_file ";
61565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_XVAL_YVAL[]   = "3 6 1 2 4 8  font_file ";
62565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_BAD_MISSING[] = "c c 1 2 4 font_file";
63565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_BAD_NO_FILE[] = "c c 1 2 4 8";
64565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
65565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    animation::text_field out;
66565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
67565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(parse_text_field(TEST_XCENT_YCENT, &out));
68565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(CENTER_VAL, out.pos_x);
69565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(CENTER_VAL, out.pos_y);
70565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_R, out.color_r);
71565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_G, out.color_g);
72565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_B, out.color_b);
73565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_A, out.color_a);
74565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_STREQ(TEST_FILE_NAME, out.font_file.c_str());
75565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
76565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(parse_text_field(TEST_XCENT_YVAL, &out));
77565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(CENTER_VAL, out.pos_x);
78565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_Y, out.pos_y);
79565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_R, out.color_r);
80565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_G, out.color_g);
81565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_B, out.color_b);
82565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_A, out.color_a);
83565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_STREQ(TEST_FILE_NAME, out.font_file.c_str());
84565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
85565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(parse_text_field(TEST_XVAL_YCENT, &out));
86565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_X, out.pos_x);
87565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(CENTER_VAL, out.pos_y);
88565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_R, out.color_r);
89565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_G, out.color_g);
90565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_B, out.color_b);
91565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_A, out.color_a);
92565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_STREQ(TEST_FILE_NAME, out.font_file.c_str());
93565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
94565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(parse_text_field(TEST_XVAL_YVAL, &out));
95565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_X, out.pos_x);
96565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_Y, out.pos_y);
97565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_R, out.color_r);
98565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_G, out.color_g);
99565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_B, out.color_b);
100565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(TEST_A, out.color_a);
101565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_STREQ(TEST_FILE_NAME, out.font_file.c_str());
102565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
103565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(parse_text_field(TEST_BAD_MISSING, &out));
104565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(parse_text_field(TEST_BAD_NO_FILE, &out));
105565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi}
106565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
107565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien BargiacchiTEST(AnimationParserTest, Test_parse_animation_desc_basic) {
108565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_ANIMATION[] = R"desc(
109565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        # Basic animation
110565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        animation: 5 1 test/animation_file
111565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        frame: 1000 0 100
112565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    )desc";
113565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    animation anim;
114565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
115565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(parse_animation_desc(TEST_ANIMATION, &anim));
116565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi}
117565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
118565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien BargiacchiTEST(AnimationParserTest, Test_parse_animation_desc_bad_no_animation_line) {
119565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_ANIMATION[] = R"desc(
120565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        # Bad animation
121565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        frame: 1000 90  10
122565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    )desc";
123565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    animation anim;
124565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
125565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(parse_animation_desc(TEST_ANIMATION, &anim));
126565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi}
127565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
128565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien BargiacchiTEST(AnimationParserTest, Test_parse_animation_desc_bad_no_frame) {
129565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_ANIMATION[] = R"desc(
130565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        # Bad animation
131565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        animation: 5 1 test/animation_file
132565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    )desc";
133565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    animation anim;
134565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
135565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(parse_animation_desc(TEST_ANIMATION, &anim));
136565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi}
137565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
138565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien BargiacchiTEST(AnimationParserTest, Test_parse_animation_desc_bad_animation_line_format) {
139565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_ANIMATION[] = R"desc(
140565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        # Bad animation
141565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        animation: 5 1
142565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        frame: 1000 90  10
143565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    )desc";
144565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    animation anim;
145565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
146565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_FALSE(parse_animation_desc(TEST_ANIMATION, &anim));
147565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi}
148565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
149565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien BargiacchiTEST(AnimationParserTest, Test_parse_animation_desc_full) {
150565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    static const char TEST_ANIMATION[] = R"desc(
151565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        # Full animation
152565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        animation: 5 1 test/animation_file
153565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        clock_display:    11 12 13 14 15 16 test/time_font
154565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        percent_display:  21 22 23 24 25 26 test/percent_font
155565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
156565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        frame: 10 20 30
157565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi        frame: 40 50 60
158565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    )desc";
159565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    animation anim;
160565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
161565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_TRUE(parse_animation_desc(TEST_ANIMATION, &anim));
162565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
163565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(5, anim.num_cycles);
164565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(1, anim.first_frame_repeats);
165565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_STREQ("test/animation_file", anim.animation_file.c_str());
166565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
167565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(11, anim.text_clock.pos_x);
168565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(12, anim.text_clock.pos_y);
169565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(13, anim.text_clock.color_r);
170565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(14, anim.text_clock.color_g);
171565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(15, anim.text_clock.color_b);
172565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(16, anim.text_clock.color_a);
173565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_STREQ("test/time_font", anim.text_clock.font_file.c_str());
174565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
175565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(21, anim.text_percent.pos_x);
176565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(22, anim.text_percent.pos_y);
177565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(23, anim.text_percent.color_r);
178565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(24, anim.text_percent.color_g);
179565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(25, anim.text_percent.color_b);
180565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(26, anim.text_percent.color_a);
181565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_STREQ("test/percent_font", anim.text_percent.font_file.c_str());
182565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
183565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(2, anim.num_frames);
184565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
185565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(10, anim.frames[0].disp_time);
186565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(20, anim.frames[0].min_level);
187565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(30, anim.frames[0].max_level);
188565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi
189565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(40, anim.frames[1].disp_time);
190565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(50, anim.frames[1].min_level);
191565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi    EXPECT_EQ(60, anim.frames[1].max_level);
192565ba02b89b64deb8bf7232ac2c2a38b01f63523Damien Bargiacchi}
193