From ca7a2b6c16091b7b53177110d05eeb2edfa7d049 Mon Sep 17 00:00:00 2001 From: Mika Date: Fri, 19 Dec 2025 16:32:37 +0000 Subject: [PATCH] Add baseline_recalc_ordering/src/baseline_recalc_ordering/core.py --- .../src/baseline_recalc_ordering/core.py | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 baseline_recalc_ordering/src/baseline_recalc_ordering/core.py diff --git a/baseline_recalc_ordering/src/baseline_recalc_ordering/core.py b/baseline_recalc_ordering/src/baseline_recalc_ordering/core.py new file mode 100644 index 0000000..c060dc7 --- /dev/null +++ b/baseline_recalc_ordering/src/baseline_recalc_ordering/core.py @@ -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