Added units of energy, speed, information (bytes etc)
This commit is contained in:
parent
fbbb895c64
commit
e4a9996880
174
src/units.rs
174
src/units.rs
@ -8,6 +8,9 @@ pub enum UnitType {
|
|||||||
Area,
|
Area,
|
||||||
Volume,
|
Volume,
|
||||||
Mass,
|
Mass,
|
||||||
|
Information,
|
||||||
|
Energy,
|
||||||
|
Speed,
|
||||||
Temperature,
|
Temperature,
|
||||||
}
|
}
|
||||||
use UnitType::*;
|
use UnitType::*;
|
||||||
@ -57,31 +60,32 @@ create_units!(
|
|||||||
Century: (Time, d128!(3155695200000000000)),
|
Century: (Time, d128!(3155695200000000000)),
|
||||||
Millenium: (Time, d128!(31556952000000000000)),
|
Millenium: (Time, d128!(31556952000000000000)),
|
||||||
|
|
||||||
Millimeter: (Length, d128!(10)),
|
Millimeter: (Length, d128!(1)),
|
||||||
Centimeter: (Length, d128!(100)),
|
Centimeter: (Length, d128!(10)),
|
||||||
Decimeter: (Length, d128!(1000)),
|
Decimeter: (Length, d128!(100)),
|
||||||
Meter: (Length, d128!(10000)),
|
Meter: (Length, d128!(1000)),
|
||||||
Kilometer: (Length, d128!(10000000)),
|
Kilometer: (Length, d128!(1000000)),
|
||||||
Inch: (Length, d128!(254)),
|
Inch: (Length, d128!(25.4)),
|
||||||
Foot: (Length, d128!(3048)),
|
Foot: (Length, d128!(304.8)),
|
||||||
Yard: (Length, d128!(9144)),
|
Yard: (Length, d128!(914.4)),
|
||||||
Mile: (Length, d128!(16093440)),
|
Mile: (Length, d128!(1609344)),
|
||||||
NauticalMile: (Length, d128!(18520000)),
|
NauticalMile: (Length, d128!(1852000)),
|
||||||
LightYear: (Length, d128!(94607304725808000000)),
|
LightYear: (Length, d128!(9460730472580800000)),
|
||||||
|
LightSecond: (Length, d128!(299792458000)),
|
||||||
|
|
||||||
SquareMillimeter: (Area, d128!(100)),
|
SquareMillimeter: (Area, d128!(1)),
|
||||||
SquareCentimeter: (Area, d128!(10000)),
|
SquareCentimeter: (Area, d128!(100)),
|
||||||
SquareDecimeter: (Area, d128!(1000000)),
|
SquareDecimeter: (Area, d128!(10000)),
|
||||||
SquareMeter: (Area, d128!(100000000)),
|
SquareMeter: (Area, d128!(1000000)),
|
||||||
SquareKilometer: (Area, d128!(100000000000000)),
|
SquareKilometer: (Area, d128!(1000000000000)),
|
||||||
SquareInch: (Area, d128!(64516)),
|
SquareInch: (Area, d128!(645.16)),
|
||||||
SquareFoot: (Area, d128!(9290304)),
|
SquareFoot: (Area, d128!(92903.04)),
|
||||||
SquareYard: (Area, d128!(83612736)),
|
SquareYard: (Area, d128!(836127.36)),
|
||||||
SquareMile: (Area, d128!(258998811033600)),
|
SquareMile: (Area, d128!(2589988110336.00)),
|
||||||
Are: (Area, d128!(10000000000)),
|
Are: (Area, d128!(100000000)),
|
||||||
Decare: (Area, d128!(100000000000)),
|
Decare: (Area, d128!(1000000000)),
|
||||||
Hectare: (Area, d128!(1000000000000)),
|
Hectare: (Area, d128!(10000000000)),
|
||||||
Acre: (Area, d128!(404685642240)),
|
Acre: (Area, d128!(4046856422.40)),
|
||||||
|
|
||||||
CubicMillimeter: (Volume, d128!(1)),
|
CubicMillimeter: (Volume, d128!(1)),
|
||||||
CubicCentimeter: (Volume, d128!(1000)),
|
CubicCentimeter: (Volume, d128!(1000)),
|
||||||
@ -115,6 +119,63 @@ create_units!(
|
|||||||
ShortTon: (Mass, d128!(907184.74)),
|
ShortTon: (Mass, d128!(907184.74)),
|
||||||
LongTon: (Mass, d128!(1016046.9088)),
|
LongTon: (Mass, d128!(1016046.9088)),
|
||||||
|
|
||||||
|
Bit: (Information, d128!(1)),
|
||||||
|
Kilobit: (Information, d128!(1000)),
|
||||||
|
Megabit: (Information, d128!(1000000)),
|
||||||
|
Gigabit: (Information, d128!(1000000000)),
|
||||||
|
Terabit: (Information, d128!(1000000000000)),
|
||||||
|
Petabit: (Information, d128!(1000000000000000)),
|
||||||
|
Exabit: (Information, d128!(1000000000000000000)),
|
||||||
|
Zettabit: (Information, d128!(1000000000000000000000)),
|
||||||
|
Yottabit: (Information, d128!(1000000000000000000000000)),
|
||||||
|
Kibibit: (Information, d128!(1024)),
|
||||||
|
Mebibit: (Information, d128!(1048576)),
|
||||||
|
Gibibit: (Information, d128!(1073741824)),
|
||||||
|
Tebibit: (Information, d128!(1099511627776)),
|
||||||
|
Pebibit: (Information, d128!(1125899906842624)),
|
||||||
|
Exbibit: (Information, d128!(1152921504606846976)),
|
||||||
|
Zebibit: (Information, d128!(1180591620717411303424)),
|
||||||
|
Yobibit: (Information, d128!(1208925819614629174706176)),
|
||||||
|
Byte: (Information, d128!(8)),
|
||||||
|
Kilobyte: (Information, d128!(8000)),
|
||||||
|
Megabyte: (Information, d128!(8000000)),
|
||||||
|
Gigabyte: (Information, d128!(8000000000)),
|
||||||
|
Terabyte: (Information, d128!(8000000000000)),
|
||||||
|
Petabyte: (Information, d128!(8000000000000000)),
|
||||||
|
Exabyte: (Information, d128!(8000000000000000000)),
|
||||||
|
Zettabyte: (Information, d128!(8000000000000000000000)),
|
||||||
|
Yottabyte: (Information, d128!(8000000000000000000000000)),
|
||||||
|
Kibibyte: (Information, d128!(8192)),
|
||||||
|
Mebibyte: (Information, d128!(8388608)),
|
||||||
|
Gibibyte: (Information, d128!(8589934592)),
|
||||||
|
Tebibyte: (Information, d128!(8796093022208)),
|
||||||
|
Pebibyte: (Information, d128!(9007199254740992)),
|
||||||
|
Exbibyte: (Information, d128!(9223372036854775808)),
|
||||||
|
Zebibyte: (Information, d128!(9444732965739290427392)),
|
||||||
|
Yobibyte: (Information, d128!(9671406556917033397649408)),
|
||||||
|
|
||||||
|
Millijoule: (Energy, d128!(0.001)),
|
||||||
|
Joule: (Energy, d128!(1)),
|
||||||
|
Kilojoule: (Energy, d128!(1000)),
|
||||||
|
Megajoule: (Energy, d128!(1000000)),
|
||||||
|
Gigajoule: (Energy, d128!(1000000000)),
|
||||||
|
Terajoule: (Energy, d128!(1000000000000)),
|
||||||
|
Calorie: (Energy, d128!(4.184)),
|
||||||
|
KiloCalorie: (Energy, d128!(4184)),
|
||||||
|
BritishThermalUnit: (Energy, d128!(1055.056)),
|
||||||
|
WattHour: (Energy, d128!(3600)),
|
||||||
|
KilowattHour: (Energy, d128!(3600000)),
|
||||||
|
MegawattHour: (Energy, d128!(3600000000)),
|
||||||
|
GigawattHour: (Energy, d128!(3600000000000)),
|
||||||
|
TerawattHour: (Energy, d128!(3600000000000000)),
|
||||||
|
PetawattHour: (Energy, d128!(3600000000000000000)),
|
||||||
|
|
||||||
|
KilometersPerHour: (Speed, d128!(1)),
|
||||||
|
MetersPerSecond: (Speed, d128!(3.6)),
|
||||||
|
MilesPerHour: (Speed, d128!(1.609344)),
|
||||||
|
FeetPerSecond: (Speed, d128!(1.09728)),
|
||||||
|
Knot: (Speed, d128!(1.852)),
|
||||||
|
|
||||||
Kelvin: (Temperature, d128!(0)),
|
Kelvin: (Temperature, d128!(0)),
|
||||||
Celcius: (Temperature, d128!(0)),
|
Celcius: (Temperature, d128!(0)),
|
||||||
Fahrenheit: (Temperature, d128!(0)),
|
Fahrenheit: (Temperature, d128!(0)),
|
||||||
@ -208,17 +269,6 @@ mod tests {
|
|||||||
assert_eq!(convert_test(1852.0, Meter, NauticalMile), 1.0);
|
assert_eq!(convert_test(1852.0, Meter, NauticalMile), 1.0);
|
||||||
assert_eq!(convert_test(9460730472580800.0, Meter, LightYear), 1.0);
|
assert_eq!(convert_test(9460730472580800.0, Meter, LightYear), 1.0);
|
||||||
|
|
||||||
assert_eq!(convert_test(10.0, Millimeter, Centimeter), 1.0);
|
|
||||||
assert_eq!(convert_test(10.0, Centimeter, Decimeter), 1.0);
|
|
||||||
assert_eq!(convert_test(10.0, Decimeter, Meter), 1.0);
|
|
||||||
assert_eq!(convert_test(1000.0, Meter, Kilometer), 1.0);
|
|
||||||
assert_eq!(convert_test(2.54, Centimeter, Inch), 1.0);
|
|
||||||
assert_eq!(convert_test(12.0, Inch, Foot), 1.0);
|
|
||||||
assert_eq!(convert_test(3.0, Foot, Yard), 1.0);
|
|
||||||
assert_eq!(convert_test(1760.0, Yard, Mile), 1.0);
|
|
||||||
assert_eq!(convert_test(1852.0, Meter, NauticalMile), 1.0);
|
|
||||||
assert_eq!(convert_test(9460730472580800.0, Meter, LightYear), 1.0);
|
|
||||||
|
|
||||||
assert_eq!(convert_test(100.0, SquareMillimeter, SquareCentimeter), 1.0);
|
assert_eq!(convert_test(100.0, SquareMillimeter, SquareCentimeter), 1.0);
|
||||||
assert_eq!(convert_test(100.0, SquareCentimeter, SquareDecimeter), 1.0);
|
assert_eq!(convert_test(100.0, SquareCentimeter, SquareDecimeter), 1.0);
|
||||||
assert_eq!(convert_test(100.0, SquareDecimeter, SquareMeter), 1.0);
|
assert_eq!(convert_test(100.0, SquareDecimeter, SquareMeter), 1.0);
|
||||||
@ -261,6 +311,60 @@ mod tests {
|
|||||||
assert_eq!(convert_test(2000.0, Pound, ShortTon), 1.0);
|
assert_eq!(convert_test(2000.0, Pound, ShortTon), 1.0);
|
||||||
assert_eq!(convert_test(2240.0, Pound, LongTon), 1.0);
|
assert_eq!(convert_test(2240.0, Pound, LongTon), 1.0);
|
||||||
|
|
||||||
|
assert_eq!(convert_test(1000.0, Bit, Kilobit), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Kilobit, Megabit), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Megabit, Gigabit), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Gigabit, Terabit), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Terabit, Petabit), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Petabit, Exabit), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Exabit, Zettabit), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Zettabit, Yottabit), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Bit, Kibibit), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Kibibit, Mebibit), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Mebibit, Gibibit), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Gibibit, Tebibit), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Tebibit, Pebibit), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Pebibit, Exbibit), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Exbibit, Zebibit), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Zebibit, Yobibit), 1.0);
|
||||||
|
assert_eq!(convert_test(8.0, Bit, Byte), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Byte, Kilobyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Kilobyte, Megabyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Megabyte, Gigabyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Gigabyte, Terabyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Terabyte, Petabyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Petabyte, Exabyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Exabyte, Zettabyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Zettabyte, Yottabyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Kibibyte, Mebibyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Mebibyte, Gibibyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Gibibyte, Tebibyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Tebibyte, Pebibyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Pebibyte, Exbibyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Exbibyte, Zebibyte), 1.0);
|
||||||
|
assert_eq!(convert_test(1024.0, Zebibyte, Yobibyte), 1.0);
|
||||||
|
|
||||||
|
|
||||||
|
assert_eq!(convert_test(1000.0, Millijoule, Joule), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Joule, Kilojoule), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Kilojoule, Megajoule), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Megajoule, Gigajoule), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Gigajoule, Terajoule), 1.0);
|
||||||
|
assert_eq!(convert_test(4.184, Joule, Calorie), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, Calorie, KiloCalorie), 1.0);
|
||||||
|
assert_eq!(convert_test(1055.056, Joule, BritishThermalUnit), 1.0);
|
||||||
|
assert_eq!(convert_test(3600.0, Joule, WattHour), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, WattHour, KilowattHour), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, KilowattHour, MegawattHour), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, MegawattHour, GigawattHour), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, GigawattHour, TerawattHour), 1.0);
|
||||||
|
assert_eq!(convert_test(1000.0, TerawattHour, PetawattHour), 1.0);
|
||||||
|
|
||||||
|
assert_eq!(convert_test(3.6, KilometersPerHour, MetersPerSecond), 1.0);
|
||||||
|
assert_eq!(convert_test(0.3048, MetersPerSecond, FeetPerSecond), 1.0);
|
||||||
|
assert_eq!(convert_test(1.609344, KilometersPerHour, MilesPerHour), 1.0);
|
||||||
|
assert_eq!(convert_test(1.852, KilometersPerHour, Knot), 1.0);
|
||||||
|
|
||||||
assert_eq!(convert_test(274.15, Kelvin, Celcius), 1.0);
|
assert_eq!(convert_test(274.15, Kelvin, Celcius), 1.0);
|
||||||
assert_eq!(convert_test(300.0, Kelvin, Fahrenheit), 80.33);
|
assert_eq!(convert_test(300.0, Kelvin, Fahrenheit), 80.33);
|
||||||
assert_eq!(convert_test(-272.15, Celcius, Kelvin), 1.0);
|
assert_eq!(convert_test(-272.15, Celcius, Kelvin), 1.0);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user