evg_api_rs/models/
stats.rs

1use 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}