Skip to content
Snippets Groups Projects
queries.py 2.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • import pandas as pd
    
    FEATHERS_DIR = "feathers"
    
    import generate_graphs as gg
    
    import helper_scripts.helper_functions as hf
    
    
    
    def main():
        data = pd.read_feather(f"{FEATHERS_DIR}/data.feather")
    
    
        # print_kem_ids()
    
        # stats_of_qtl95_of_packetloss(data)
        error_count_and_rate(data)
    
    
    
    def stats_of_qtl95_of_packetloss(data):
        ldata = data
        print("Stats of qtl95")
    
    
        ldata = gg.filter_data(ldata, scenario="packetloss", protocol="quic")
    
        ldata = ldata.query("kem_alg == 'x25519' or kem_alg == 'frodo640aes'")
    
        # ldata = ldata.query("kem_alg == 'mlkem1024' or kem_alg == 'frodo1344aes'")
    
    
        # ldata = ldata.query
    
        print("Showing data of packetloss quic")
        ldata = ldata.drop(
            columns=[
                "scenario",
                "protocol",
                "sec_level",
                "cli_pkt_loss",
                "cli_delay",
                "cli_rate",
                "measurements",
            ]
        )
    
    def error_count_and_rate(data):
        print("Error count and rate")
        ldata = data
        print("Total index length")
        print(len(ldata.index))
        print("Total error count")
        print(
            ldata["error_count"].sum()
        )  # Grep tells there are 83996 CRYPTO_BUFFER_EXCEEDEDs, while total error count is just a bit above it 84186
        ldata = ldata.query("error_count > 0")
        print("Total index length with error count > 0")
        print(len(ldata.index))
        ldata = ldata[~ldata["kem_alg"].str.contains("frodo")]
        print("Total index length with error count > 0 and without frodo")
        print(len(ldata.index))
        print(
            ldata[
                [
                    "scenario",
                    "protocol",
                    "sec_level",
                    "kem_alg",
                    "error_count",
                    "error_rate",
                ]
            ]
        )
        # print(ldata["scenario"].unique()) # all 10 scenarios
        print("With error count > 1")
        ldata = ldata.query("error_count > 1")
        print(
            ldata[
                [
                    "scenario",
                    "protocol",
                    "sec_level",
                    "kem_alg",
                    "error_count",
                    "error_rate",
                ]
            ]
        )
    
    
    def print_kem_ids():
        data = hf.get_kem_ids()
        print(data)
    
    
    
    main()