|
|
import pandas as pd
|
|
|
import sys
|
|
|
import os
|
|
|
import numpy as np
|
|
|
|
|
|
|
|
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
|
|
|
|
from core.signal.arcing import calculate_arcing_parameters
|
|
|
|
|
|
def test_arcing_analysis():
|
|
|
print("Testing calculate_arcing_parameters...")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
time = np.arange(0, 100, 1)
|
|
|
resistance = np.zeros(100)
|
|
|
travel = np.zeros(100)
|
|
|
|
|
|
|
|
|
resistance[0:60] = 40.0
|
|
|
resistance[60:80] = 200.0
|
|
|
resistance[80:] = 2000.0
|
|
|
|
|
|
|
|
|
|
|
|
travel[0:50] = 0.0
|
|
|
travel[50:] = np.arange(0, 50, 1)
|
|
|
|
|
|
df = pd.DataFrame({
|
|
|
'Time_ms': time,
|
|
|
'Resistance': resistance,
|
|
|
'Travel': travel,
|
|
|
'Current': [0]*100
|
|
|
})
|
|
|
|
|
|
result = calculate_arcing_parameters(df)
|
|
|
|
|
|
print("Status:", result['status'])
|
|
|
print("Events:", result['events'])
|
|
|
print("Metrics:", result['metrics'])
|
|
|
|
|
|
|
|
|
events = result['events']
|
|
|
metrics = result['metrics']
|
|
|
|
|
|
|
|
|
assert events['T2_main_separation'] == 60.0
|
|
|
|
|
|
|
|
|
assert events['T4_arcing_separation'] == 80.0
|
|
|
|
|
|
|
|
|
assert metrics['Ra_avg_arcing_res'] == 200.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assert 19.0 < metrics['Da_arcing_wipe'] < 21.0
|
|
|
|
|
|
print("Test Passed!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
test_arcing_analysis()
|
|
|
|