Spaces:
Running
Running
File size: 1,777 Bytes
f15861f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | from backend.utils.peer_comparison import calculate_normalized_scores_v2
import json
def test_normalization():
print("Testing Normalization Logic...")
# Case 1: High Growth, High Profit
sample_1 = {
'returns_5y': 150.0, # Expect 100
'roe': 35.0, # Expect 100
'roce': 40.0, # Expect 100
'pe_ratio': 20.0,
'industry_pe': 25.0, # Undervalued -> Expect high score
'dividend_yield': 1.5, # Expect ~37.5 (1.5/4 * 100 ?) No, range 0-5. 1.5/5 * 100 = 30? Wait formula is linear 0-5.
'returns_1y': 80.0 # Expect High
}
scores_1 = calculate_normalized_scores_v2(sample_1)
print(f"\nSample 1 (High Performance):\n{json.dumps(scores_1, indent=2)}")
# Case 2: Poor Performance
sample_2 = {
'returns_5y': -30.0, # Expect 0 (min -20)
'roe': -5.0, # Expect 0
'roce': 2.0, # Expect low
'pe_ratio': 50.0,
'industry_pe': 25.0, # Overvalued -> Expect low score
'dividend_yield': 0.0, # Expect 0
'returns_1y': -60.0 # Expect 0 (min -50)
}
scores_2 = calculate_normalized_scores_v2(sample_2)
print(f"\nSample 2 (Poor Performance):\n{json.dumps(scores_2, indent=2)}")
# Case 3: Average / Missing
sample_3 = {
'pe_ratio': 25.0,
'industry_pe': 25.0 # Fair value
# Others missing -> Expect 50
}
scores_3 = calculate_normalized_scores_v2(sample_3)
print(f"\nSample 3 (Average/Missing):\n{json.dumps(scores_3, indent=2)}")
if __name__ == "__main__":
try:
test_normalization()
print("\n✅ Verification Successful: Logic runs without errors.")
except Exception as e:
print(f"\n❌ Verification Failed: {e}")
|