Add baseline_recalc_ordering/src/baseline_recalc_ordering/core.py
This commit is contained in:
parent
589e15b618
commit
ca7a2b6c16
1 changed files with 48 additions and 0 deletions
|
|
@ -0,0 +1,48 @@
|
|||
from __future__ import annotations
|
||||
import json
|
||||
import pandas as pd
|
||||
from statistics import mean, median, pstdev
|
||||
from typing import List, Dict
|
||||
|
||||
|
||||
def analyze_latency(order_sequence: List[str]) -> Dict[str, object]:
|
||||
"""Analysiert Latenzmetriken unter verschiedenen baseline_recalc-Reihenfolgen.
|
||||
|
||||
Diese Funktion überprüft die Eingabe, erzeugt exemplarische Latenzwerte
|
||||
für jedes Element der Reihenfolge und berechnet daraus statistische Kennzahlen.
|
||||
|
||||
Args:
|
||||
order_sequence: Liste der angewandten baseline_recalc-Operationen in Reihenfolge.
|
||||
|
||||
Returns:
|
||||
Dictionary mit der Reihenfolge und berechneten Latenzmetriken.
|
||||
"""
|
||||
if not isinstance(order_sequence, list) or not all(isinstance(x, str) for x in order_sequence):
|
||||
raise ValueError("order_sequence muss eine Liste von Strings sein.")
|
||||
if not order_sequence:
|
||||
raise ValueError("order_sequence darf nicht leer sein.")
|
||||
|
||||
# Simuliere exemplarische Latenzen: hier einfach eine deterministische Abbildung
|
||||
# aus der Position + Buchstabenwerten, für Tests reproduzierbar.
|
||||
latencies = []
|
||||
for i, op in enumerate(order_sequence):
|
||||
op_val = sum(ord(c) for c in op) % 50 # deterministisch und klein
|
||||
latencies.append(op_val + i * 0.5)
|
||||
|
||||
df = pd.DataFrame({"operation": order_sequence, "latency": latencies})
|
||||
|
||||
latency_metrics = {
|
||||
"mean": float(mean(df["latency"])),
|
||||
"median": float(median(df["latency"])),
|
||||
"stdev": float(pstdev(df["latency"])),
|
||||
"min": float(df["latency"].min()),
|
||||
"max": float(df["latency"].max()),
|
||||
"count": int(df["latency"].count()),
|
||||
}
|
||||
|
||||
result = {
|
||||
"order_sequence": order_sequence,
|
||||
"latency_metrics": latency_metrics,
|
||||
}
|
||||
|
||||
return result
|
||||
Loading…
Reference in a new issue