feat: Fixes errors with estimating pressures that include a filter pressure drop.

This commit is contained in:
2024-07-01 09:09:55 -04:00
parent ebc9bf3ea6
commit 9e9893076f
2 changed files with 14 additions and 110 deletions

View File

@@ -104,7 +104,7 @@ struct FlaggedMeasurementListStateTests {
name: "Test"
))
#expect(result?.flaggedMeasurement == .init(
#expect(result?.flaggedMeasurement == .init(
budgets: .init(equipmentType: .airHandler, fanType: .constantSpeed),
measurement: measurement,
ratedPressures: .init(),
@@ -176,7 +176,6 @@ final class FlaggedMeasurementListReducerTests: XCTestCase {
await store.send(.destination(.presented(.estimationForm(.binding(.set(\.name, "Test"))))))
await store.send(.destination(.presented(.estimationForm(.binding(.set(\.filterPressureDrop, 0.1))))))
// store.exhaustivity = .on
let pressureResult = try await estimatedPressuresClient.estimatedPressure(
equipmentMeasurement: .mock(type: .airHandler),
airflow: 1050,
@@ -189,25 +188,23 @@ final class FlaggedMeasurementListReducerTests: XCTestCase {
tons: .three
)
store.exhaustivity = .off(showSkippedAssertions: true)
// store.exhaustivity = .on
store.exhaustivity = .on
await store.send(.view(.destination(.doneButtonTapped))) {
$0.destination = nil
}
// await store.receive(\.receive.failure, timeout: 10)
// await store.receive(\.receive.success.estimatedFlaggedMeasurement, timeout: 10) {
// $0.sharedSettings.flaggedEstimations[id: UUID(0)] = .init(
// id: UUID(0),
// estimationState: .init(
// cfm: .cfmPerTon(350, .three),
// filterPressureDrop: 0.1,
// name: "Test"
// ),
// flaggedMeasurement: flaggedResult
// )
// }
//
await store.receive(\.receive.success.estimatedFlaggedMeasurement, timeout: 10) {
$0.sharedSettings.flaggedEstimations[id: UUID(0)] = .init(
id: UUID(0),
estimationState: .init(
cfm: .cfmPerTon(350, .three),
filterPressureDrop: 0.1,
name: "Test"
),
flaggedMeasurement: flaggedResult
)
}
await store.finish()
}
@@ -245,56 +242,6 @@ final class FlaggedMeasurementListReducerTests: XCTestCase {
//
// }
@MainActor
func testPressureEstimation() async throws {
_ = try await pressureEstimation(
equipmentType: .airHandler,
filterPressureDrop: 0.1
)
// XCTFail()
}
private func pressureEstimation(
equipmentType: EquipmentMeasurement.EquipmentType,
filterPressureDrop: Double?
) async throws -> EquipmentMeasurement {
try await withDependencies {
$0.estimatedPressuresClient = .liveValue
} operation: {
@Dependency(\.estimatedPressuresClient) var client
let equipmentMeasurement = EquipmentMeasurement.mock(type: equipmentType)
var estimate = try await client.estimatedPressure(
equipmentMeasurement: equipmentMeasurement,
airflow: 1050
)
guard let filterPressureDrop else { return estimate }
setFilterPressureDrop(Positive(filterPressureDrop), measurement: &estimate)
return estimate
}
}
private func setFilterPressureDrop(
_ filterDrop: Positive<Double>,
measurement: inout EquipmentMeasurement
) {
switch measurement {
case var .airHandler(airHandler):
// let newPressure = airHandler.$returnPlenumPressure + filterDrop
// print("newPressure: \(newPressure)")
airHandler.postFilterPressure = airHandler.returnPlenumPressure +
filterDrop.positiveValue
measurement = .airHandler(airHandler)
case var .furnaceAndCoil(furnace):
furnace.postFilterPressure = furnace.returnPlenumPressure + filterDrop.positiveValue
measurement = .furnaceAndCoil(furnace)
}
}
}
extension Tag {