From cc97e16ff96cc3b6d3d68703a2912db6719748b0 Mon Sep 17 00:00:00 2001 From: Cal Wing Date: Fri, 14 Feb 2025 21:33:43 +0100 Subject: [PATCH] Task 2 --- a1.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/a1.py b/a1.py index b7318cd..bcae5df 100644 --- a/a1.py +++ b/a1.py @@ -31,12 +31,12 @@ def determine_power_used(water_mass: float, elevation: float, pumping_time: floa # Actual amount of energy needed based on eff # Here an 85% eff means an extra 15% is needed to pump the water up - electrical_energy = potenital_energy * (1 + (1 - efficiency/100)) # J = J * SCALER + electrical_energy = potenital_energy / (efficiency/100) # J = J * SCALER # Actual electrial power used to pump the water power_used = electrical_energy / (pumping_time*60*60) # W = J / S = J / (hr*60*60) - return power_used / 10e3 # W -> kW + return power_used / 1e3 # W -> kW # Task 2 def determine_water_released(gen_power: float, elevation: float, pumping_time: float, efficiency: float) -> float: @@ -54,22 +54,22 @@ def determine_water_released(gen_power: float, elevation: float, pumping_time: f """ # How much electrical engery was generated? - electrical_energy = (gen_power * 10e3) * (pumping_time*60*60) # J = W * S = (kW * 10^3) * (hrs*60*60) + electrical_energy = (gen_power * 1e3) * (pumping_time*60*60) # J = W * S = (kW * 10^3) * (hrs*60*60) # Need more potential energy to get electrial energy # Again here for 85% eff need 15% more potenitial enegry to get pot-eng - potential_energy = electrical_energy / (1 + (1 - efficiency/100)) # J = J * Scaler + potential_energy = electrical_energy * (efficiency/100) # J = J * Scaler - water_mass = potential_energy / (WATER_DENSITY * elevation) # kg = J / (m/s^2 * m) + water_mass = potential_energy / (GRAVITY_ACC * elevation) # kg = J / (m/s^2 * m) return water_mass -def main(): - print("Hello World!") +# Task 3 # See if I get what the task sheet wants def sheet_tasks(): + import numpy as np TASKS = ( (determine_power_used, (5e6, 250, 8, 85), 500.9191176470588), (determine_water_released, (300, 250, 8, 85), 2994495.4128440367) @@ -78,12 +78,23 @@ def sheet_tasks(): for i, (task, args, expected) in enumerate(TASKS): print(f'Task {i+1}') result = task(*args) - if expected is not None: + + # Number comparison + if isinstance(expected, (float, int)): + foo = np.isclose(result, expected, 0.001) + print(f'{task.__qualname__}{args} -> {result} {"~=" if foo else "!="} {expected}') + print(f'Task is{"" if foo else " NOT"} close enough to expected result.') + + # Literal Comparison + elif expected is not None: print(f'{task.__qualname__}{args} -> {result} {"==" if result == expected else "!="} {expected}') print(f'Task{"" if result == expected else " NOT"} equal to expected result.') + + # Just run the task else: print(f'{task.__qualname__}{args} -> {result}') + # Newline print() if __name__ == '__main__':