-
Notifications
You must be signed in to change notification settings - Fork 127
Added roman units #524
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Added roman units #524
Conversation
51219e7 to
cf18bb6
Compare
|
Thanks for the PR! I made some minor formatting/comment changes, cleaned up the commit history. Diff below for reference. Before merging I realized that tests can be added for many of these units. e.g. in diff --git a/src/si/area.rs b/src/si/area.rs
index 4738359..feec0fb 100644
--- a/src/si/area.rs
+++ b/src/si/area.rs
@@ -66,9 +66,10 @@ quantity! {
@square_mile: 2.589_988_E6; "mi²", "square mile", "square miles";
@square_yard: 8.361_274_E-1; "yd²", "square yard", "square yards";
- /// Roman units
+ // Roman units.
@pes_quadratus: 8.76_E-2; "pes quadratus", "pes quadratus", "pes quadratus";
- @decempeda_quadrata: 8.76_E0; "decempeda quadrata", "decempeda quadrata", "decempeda quadrata";
+ @decempeda_quadrata: 8.76_E0; "decempeda quadrata", "decempeda quadrata",
+ "decempeda quadrata";
@actus_simplex: 4.21_E1; "actus simplex", "actus simplex", "actus simplex";
@uncia: 2.10_E2; "uncia", "uncia", "uncia";
@clima: 3.15_E2; "clima", "clima", "clima";
diff --git a/src/si/length.rs b/src/si/length.rs
index b671e4e..b5123b4 100644
--- a/src/si/length.rs
+++ b/src/si/length.rs
@@ -67,7 +67,7 @@ quantity! {
@rod: 5.029_21_E0; "rd", "rod", "rods";
@yard: 9.144_E-1; "yd", "yard", "yards";
- /// Roman units
+ // Roman units.
@digitus: 1.85_E-2; "digitus", "digitus", "digitus";
@uncia_pollex: 2.46_E-2; "uncia pollex", "uncia pollex", "uncia pollex";
@palmus: 7.4_E-2; "palmus", "palmus", "palmus";
diff --git a/src/si/mass.rs b/src/si/mass.rs
index 63f975a..4dbda2f 100644
--- a/src/si/mass.rs
+++ b/src/si/mass.rs
@@ -57,11 +57,12 @@ quantity! {
/// Ton Metric
@ton: 1.0_E3; "t", "ton", "tons";
- /// Roman units
+ // Roman units.
@uncia: 2.74_E-2; "uncia", "uncia", "uncia";
@sescunx: 4.11_E-2; "sescunx", "sescunx", "sescunx";
@sextans: 5.48_E-2; "sextans", "sextans", "sextans";
- @quadrans_teruncius: 8.22_E-2; "quadrans teruncius", "quadrans teruncius", "quadrans teruncius";
+ @quadrans_teruncius: 8.22_E-2; "quadrans teruncius", "quadrans teruncius",
+ "quadrans teruncius";
@tirens: 1.096_E-1; "tirens", "tirens", "tirens";
@quincunx: 1.37_E-1; "quincunx", "quincunx", "quincunx";
@semis: 1.645_E-1; "semis", "semis", "semis";
diff --git a/src/si/volume.rs b/src/si/volume.rs
index 255b987..f16d36b 100644
--- a/src/si/volume.rs
+++ b/src/si/volume.rs
@@ -101,9 +101,7 @@ quantity! {
@teaspoon: 4.928_922_E-6; "tsp", "teaspoon", "teaspoons";
@register_ton: 2.831_685_E0; "RT", "register ton", "register tons";
- /// Roman units
-
- /// --- Dry / Wet ---
+ // Roman dry / wet units.
@ligula: 1.14_E-2; "ligula", "ligula", "ligula";
@cyathus: 4.5_E-2; "cyathus", "cyathus", "cyathus";
@acetabulum: 6.8_E-2; "acetabulum", "acetabulum", "acetabulum";
@@ -111,13 +109,14 @@ quantity! {
@hemina: 2.73_E-1; "hemina", "hemina", "hemina";
@sextarius: 5.46_E-1; "sextarius", "sextarius", "sextarius";
- /// Wet
+ // Roman wet units.
@congius: 3.27; "congius", "congius", "congius";
@urna: 1.31_E1; "urna", "urna", "urna";
- @amphora_quadrantal: 2.62_E1; "amphora quadrantal", "amphora quadrantal", "amphora quadrantal";
+ @amphora_quadrantal: 2.62_E1; "amphora quadrantal", "amphora quadrantal",
+ "amphora quadrantal";
@culeus: 5.24_E2; "culeus", "culeus", "culeus";
- /// Dry
-
+ // Roman dry units.
@semimodius: 4.36; "semimodius", "semimodius", "semimodius";
@modius: 8.73; "modius", "modius", "modius";
@modius_castrensis: 1.293_E1; "modius castrensis", "modius castrensis", "modius castrensis"; |
|
I have now gone in and added some tests but am having some difficulties with float multiplication; When running the command The failing test reads like this: I have tried to mitigate the error by adjusting the lengths to the square root of the areas, wanting to at least get the area spot on, it did improve things but there are still some float imprecision errors. |
|
Change the assert to |
|
Fixed the values, hope it passes the tests now, they did locally |
Added the ancient roman units for quantities length, area, volume, and mass.
Values were taken from the article: https://en.wikipedia.org/wiki/Ancient_Roman_units_of_measurement