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