Added mass and remove unecesary private (#41)

Co-authored-by: Zachary Levy <zachary@sunforge.is>
Reviewed-on: #41
This commit was merged in pull request #41.
This commit is contained in:
2026-07-14 20:43:50 +00:00
parent 10f90e30e2
commit f1bf76e1be
6 changed files with 828 additions and 46 deletions
+19 -17
View File
@@ -10,14 +10,14 @@ Pascals :: struct($V: typeid) where intrinsics.type_is_numeric(V) {
v: V,
}
@(private = "file")
// Prefer the to_kilo_pascals procedure group.
pascals_to_kilo_pascals :: #force_inline proc "contextless" (
pascals: Pascals($V),
) -> Kilo_Pascals(V) where intrinsics.type_is_numeric(V) {
return Kilo_Pascals(V){pascals.v / KILO}
}
@(private = "file")
// Prefer the to_torr procedure group.
pascals_to_torr :: #force_inline proc "contextless" (
pascals: Pascals($V),
) -> Torr(V) where intrinsics.type_is_float(V) {
@@ -29,15 +29,16 @@ Kilo_Pascals :: struct($V: typeid) where intrinsics.type_is_numeric(V) {
v: V,
}
@(private = "file")
// Prefer the to_pascals procedure group.
kilo_pascals_to_pascals :: #force_inline proc "contextless" (
kilo_pascals: Kilo_Pascals($V),
) -> Pascals(V) where intrinsics.type_is_numeric(V) {
return Pascals(V){kilo_pascals.v * KILO}
}
// Prefer the to_psi procedure group.
kilo_pascals_to_psi :: #force_inline proc "contextless" (
kilo_pascals: Kilo_Pascals($V),
kilo_pascals: Kilo_Pascals($V),
) -> Psi(V) where intrinsics.type_is_float(V) {
return Psi(V){kilo_pascals.v / KILO_PASCALS_PER_PSI}
}
@@ -47,7 +48,7 @@ Torr :: struct($V: typeid) where intrinsics.type_is_numeric(V) {
v: V,
}
@(private = "file")
// Prefer the to_pascals procedure group.
torr_to_pascals :: #force_inline proc "contextless" (
torr: Torr($V),
) -> Pascals(V) where intrinsics.type_is_float(V) {
@@ -59,6 +60,7 @@ Psi :: struct($V: typeid) where intrinsics.type_is_numeric(V) {
v: V,
}
// Prefer the to_kilo_pascals procedure group.
psi_to_kilo_pascals :: #force_inline proc "contextless" (
psi: Psi($V),
) -> Kilo_Pascals(V) where intrinsics.type_is_float(V) {
@@ -79,11 +81,11 @@ to_kilo_pascals :: proc {
}
to_torr :: proc {
pascals_to_torr,
pascals_to_torr,
}
to_psi :: proc {
kilo_pascals_to_psi,
kilo_pascals_to_psi,
}
@@ -110,25 +112,25 @@ test_kilo_pascals_to_pascals :: proc(t: ^testing.T) {
@(test)
test_pascals_to_torr :: proc(t: ^testing.T) {
pascals := Pascals(f32){1000}
torr := to_torr(pascals)
pascals := Pascals(f32){1000}
torr := to_torr(pascals)
testing.expect(t, torr.v > 7.49 && torr.v < 7.51)
testing.expect(t, torr.v > 7.49 && torr.v < 7.51)
}
@(test)
test_torr_to_pascals :: proc(t: ^testing.T) {
torr := Torr(f32){7.5}
pascals := to_pascals(torr)
torr := Torr(f32){7.5}
pascals := to_pascals(torr)
testing.expect(t, pascals.v > 999.91 && pascals.v < 999.92)
testing.expect(t, pascals.v > 999.91 && pascals.v < 999.92)
}
@(test)
test_psi_kilo_pascals :: proc(t: ^testing.T) {
psi := Psi(f32){2.5}
kilo_pascals := Kilo_Pascals(f32){17.23689323292091}
psi := Psi(f32){2.5}
kilo_pascals := Kilo_Pascals(f32){17.23689323292091}
testing.expect(t, to_kilo_pascals(psi).v > 17.22 && to_kilo_pascals(psi).v < 17.24)
testing.expect(t, to_psi(kilo_pascals).v > 2.49 && to_psi(kilo_pascals).v < 2.51)
testing.expect(t, to_kilo_pascals(psi).v > 17.22 && to_kilo_pascals(psi).v < 17.24)
testing.expect(t, to_psi(kilo_pascals).v > 2.49 && to_psi(kilo_pascals).v < 2.51)
}