fn test_quantify_loss()

in nfm-controller/src/events/network_event.rs [674:724]


    fn test_quantify_loss() {
        let mut stats = NetworkStats::default();
        assert_eq!(stats.quantify_loss(), 0);

        stats.bytes_received = 100;
        assert_eq!(stats.quantify_loss(), 0);

        stats.rtt_us.count = 50;
        assert_eq!(stats.quantify_loss(), 0);

        stats.retrans_syn = 1;
        let loss_a1 = stats.quantify_loss();

        stats.retrans_syn = 0;
        stats.retrans_est = 1;
        let loss_a2 = stats.quantify_loss();

        stats.retrans_est = 0;
        stats.retrans_close = 1;
        let loss_a3 = stats.quantify_loss();

        stats.retrans_close = 0;
        stats.rtos_syn = 1;
        let loss_b1 = stats.quantify_loss();

        stats.rtos_syn = 0;
        stats.rtos_est = 1;
        let loss_b2 = stats.quantify_loss();

        stats.rtos_est = 0;
        stats.rtos_close = 1;
        let loss_b3 = stats.quantify_loss();

        stats.rtos_close = 0;
        stats.severed_connect = 1;
        let loss_c = stats.quantify_loss();

        stats.retrans_syn = 1;
        stats.rtos_syn = 1;
        stats.severed_connect = 1;
        let loss_d = stats.quantify_loss();

        assert!(loss_d > loss_c);
        assert!(loss_c > loss_b1);
        assert!(loss_b1 > loss_a1);

        assert_eq!(loss_a2, loss_a1);
        assert_eq!(loss_a3, loss_a1);
        assert_eq!(loss_b2, loss_b1);
        assert_eq!(loss_b3, loss_b1);
    }