-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathev_test.mbt
More file actions
91 lines (85 loc) · 2.83 KB
/
ev_test.mbt
File metadata and controls
91 lines (85 loc) · 2.83 KB
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// Copyright 2025 International Digital Economy Academy
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
///|
test "event drop" {
let id = GamepadId::new(0)
let ev = Event::new(id, EventType::Connected)
inspect(ev.is_dropped(), content="false")
inspect(ev.drop().is_dropped(), content="true")
}
///|
test "button categories" {
inspect(Button::South.is_action(), content="true")
inspect(Button::LeftTrigger2.is_trigger(), content="true")
inspect(Button::Start.is_menu(), content="true")
inspect(Button::LeftThumb.is_stick(), content="true")
inspect(Button::DPadLeft.is_dpad(), content="true")
inspect(Button::Unknown.is_action(), content="false")
}
///|
test "axis second axis" {
fn axis_name(ax : Axis) -> String {
match ax {
Axis::LeftStickX => "LeftStickX"
Axis::LeftStickY => "LeftStickY"
Axis::LeftZ => "LeftZ"
Axis::RightStickX => "RightStickX"
Axis::RightStickY => "RightStickY"
Axis::RightZ => "RightZ"
Axis::DPadX => "DPadX"
Axis::DPadY => "DPadY"
Axis::Unknown => "Unknown"
}
}
fn axis_opt_name(ax : Axis?) -> String {
match ax {
None => "None"
Some(ax) => "Some(" + axis_name(ax) + ")"
}
}
inspect(
axis_opt_name(Axis::LeftStickX.second_axis()),
content="Some(LeftStickY)",
)
inspect(
axis_opt_name(Axis::LeftStickY.second_axis()),
content="Some(LeftStickX)",
)
inspect(axis_opt_name(Axis::DPadX.second_axis()), content="Some(DPadY)")
inspect(axis_opt_name(Axis::Unknown.second_axis()), content="None")
}
///|
test "ev helper branches parity" {
inspect(Axis::LeftStickX.is_stick(), content="true")
inspect(Axis::LeftZ.is_stick(), content="false")
inspect(
Axis::RightStickX.second_axis().map(fn(ax) { ax.to_index() }),
content="Some(4)",
)
inspect(
Axis::RightStickY.second_axis().map(fn(ax) { ax.to_index() }),
content="Some(3)",
)
inspect(
Axis::DPadY.second_axis().map(fn(ax) { ax.to_index() }),
content="Some(6)",
)
inspect(Button::South.is_trigger(), content="false")
inspect(Button::South.is_menu(), content="false")
inspect(Button::South.is_stick(), content="false")
inspect(Button::South.is_dpad(), content="false")
inspect(Button::C.to_index(), content="2")
inspect(Button::Z.to_index(), content="5")
inspect(AxisOrBtn::Axis(Axis::Unknown).is_button(), content="false")
}