forked from pytorch/pytorch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_mobile_type_parser.cpp
59 lines (46 loc) · 1.75 KB
/
test_mobile_type_parser.cpp
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "test/cpp/jit/test_base.h"
//#include <gtest.h>
namespace c10 {
// std::string serializeType(const Type &t);
TypePtr parseType(const std::string& pythonStr);
} // namespace c10
namespace torch {
namespace jit {
void testMobileTypeParser() {
std::string empty_ps("");
ASSERT_ANY_THROW(c10::parseType(empty_ps));
std::string int_ps("int");
auto int_tp = c10::parseType(int_ps);
std::string int_tps = int_tp->python_str();
ASSERT_EQ(int_ps, int_tps);
std::string tuple_ps(
"Tuple[str, Optional[float], Dict[str, List[Tensor]], int]");
auto tuple_tp = c10::parseType(tuple_ps);
std::string tuple_tps = tuple_tp->python_str();
ASSERT_EQ(tuple_ps, tuple_tps);
std::string tuple_space_ps(
"Tuple[ str, Optional[float], Dict[str, List[Tensor ]] , int]");
auto tuple_space_tp = c10::parseType(tuple_space_ps);
// tuple_space_tps should not have weird white spaces
std::string tuple_space_tps = tuple_space_tp->python_str();
ASSERT_EQ(tuple_ps, tuple_space_tps);
std::string typo_token("List[tensor]");
ASSERT_ANY_THROW(c10::parseType(typo_token));
std::string mismatch1("List[Tensor");
ASSERT_ANY_THROW(c10::parseType(mismatch1));
std::string mismatch2("List[[Tensor]");
ASSERT_ANY_THROW(c10::parseType(mismatch2));
std::string mismatch3("Dict[Tensor]");
ASSERT_ANY_THROW(c10::parseType(mismatch3));
// arg count mismatch
std::string mismatch4("List[int, str]");
ASSERT_ANY_THROW(c10::parseType(mismatch4));
std::string trailing_commm("Dict[str,]");
ASSERT_ANY_THROW(c10::parseType(trailing_commm));
std::string extra_stuff("int int");
ASSERT_ANY_THROW(c10::parseType(extra_stuff));
std::string non_id("(int)");
ASSERT_ANY_THROW(c10::parseType(non_id));
}
} // namespace jit
} // namespace torch