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
//!
//! Access to the qantities of the struct Network.
//!

use super::Network;

impl Network {
    /// Get Network.n
    pub fn get_n(&self) -> u32 {
        self.n
    }

    /// Get Network.edge_list
    pub fn get_edge_list(&self) -> Vec<(u32, u32)> {
        self.edge_list.clone()
    }

    /// Get average degree of the network
    /// Calculation time : O(1)
    pub fn get_average_degree(&self) -> f64 {
        2.0 * self.edge_list.len() as f64 / self.n as f64
    }
}

#[test]
fn test_get_average_degree() {
    let length = 5;
    let target = Network::make_square_lattice(length);
    assert_eq!(target.get_average_degree().round() as u32, 4);
}