evg_api_rs/models/
stats.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize)]
4pub struct EvgTestStatsRequest {
5 pub after_date: String,
6 pub before_date: String,
7 pub group_num_days: u64,
8 pub variants: String,
9 pub tasks: String,
10 pub tests: Option<String>,
11}
12
13impl Default for EvgTestStatsRequest {
14 fn default() -> Self {
15 Self {
16 after_date: String::from(""),
17 before_date: String::from(""),
18 group_num_days: 1,
19 variants: String::from(""),
20 tasks: String::from(""),
21 tests: None,
22 }
23 }
24}
25
26#[derive(Debug, Deserialize, Clone)]
27pub struct EvgTestStats {
28 pub test_file: String,
29 pub task_name: String,
30 pub variant: String,
31 pub distro: Option<String>,
32 pub date: String,
33 pub num_pass: u64,
34 pub num_fail: u64,
35 pub avg_duration_pass: f64,
36}
37
38#[derive(Debug, Serialize)]
39pub struct EvgTaskStatsRequest {
40 pub after_date: String,
41 pub before_date: String,
42 pub group_num_days: u64,
43 pub variants: String,
44 pub tasks: String,
45}
46
47impl Default for EvgTaskStatsRequest {
48 fn default() -> Self {
49 Self {
50 after_date: String::from(""),
51 before_date: String::from(""),
52 group_num_days: 1,
53 variants: String::from(""),
54 tasks: String::from(""),
55 }
56 }
57}
58
59#[derive(Debug, Deserialize, Clone)]
60pub struct EvgTaskStats {
61 pub task_name: String,
62 pub variant: String,
63 pub distro: Option<String>,
64 pub date: String,
65 pub num_success: u64,
66 pub num_failed: u64,
67 pub num_total: u64,
68 pub num_timeout: u64,
69 pub num_test_failed: u64,
70 pub num_system_failed: u64,
71 pub num_setup_failed: u64,
72 pub avg_duration_success: f64,
73}
74
75impl EvgTaskStats {
76 pub fn pass_rate(&self) -> f64 {
77 self.num_success as f64 / self.num_total as f64
78 }
79}