đŸ› ïžToolsShed

Flexibility Test

Evaluate your sit-and-reach flexibility score by age and gender.

FlexibilityTest.about

FlexibilityTest.aboutDesc

FlexibilityTest.categoryFlexibilityTest.male18_25FlexibilityTest.female18_25
Excellent≄ 39 cm≄ 43 cm
Good≄ 34 cm≄ 38 cm
Above Average≄ 29 cm≄ 34 cm
Average≄ 24 cm≄ 30 cm
Below Average≄ 18 cm≄ 25 cm
Poor≄ 13 cm≄ 20 cm
Very Poor≄ 0 cm≄ 0 cm

HĂ€ufig gestellte Fragen

Code-Implementierung

def evaluate_flexibility(
    reach_cm: float, age: int, gender: str
) -> dict:
    """
    Evaluate sit-and-reach flexibility test score.
    Returns rating based on normative data.
    """
    # Normative ranges (cm) [excellent, above_avg, average, below_avg]
    norms = {
        "male": {
            (0, 29):   [27, 17, 6, -5],
            (30, 39):  [25, 15, 4, -6],
            (40, 49):  [23, 13, 2, -7],
            (50, 59):  [20, 10, -1, -9],
            (60, 120): [17, 8, -3, -11],
        },
        "female": {
            (0, 29):   [30, 21, 12, 5],
            (30, 39):  [29, 20, 11, 4],
            (40, 49):  [27, 18, 9, 2],
            (50, 59):  [25, 16, 8, 0],
            (60, 120): [23, 14, 6, -2],
        },
    }

    thresholds = None
    for (low, high), values in norms.get(gender.lower(), {}).items():
        if low <= age <= high:
            thresholds = values
            break

    if thresholds is None:
        return {"error": "Age/gender out of range"}

    excellent, above_avg, average, below_avg = thresholds
    if reach_cm >= excellent:
        rating = "Excellent"
    elif reach_cm >= above_avg:
        rating = "Above Average"
    elif reach_cm >= average:
        rating = "Average"
    elif reach_cm >= below_avg:
        rating = "Below Average"
    else:
        rating = "Poor"

    return {"reach_cm": reach_cm, "rating": rating, "age": age, "gender": gender}

result = evaluate_flexibility(reach_cm=20, age=35, gender="male")
print(result)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.