quantify 0.5.0
quantify: ^0.5.0 copied to clipboard
A type-safe unit of measurement converter library for Dart with elegant syntax, high precision, and optimal performance.
Changelog #
All notable changes to the quantify
package will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.5.0] #
2025-06-29
Added #
-
Expanded Unit Coverage:
- Length: Added Mm (megametre) and Gm (gigametre).
- Mass: Added Mg (megagram) and Gg (gigagram).
- Time: Added full range of SI prefixes (Gs to cs) and calendar units (fortnight, decade, century).
- ElectricCurrent: Added CGS units statA (statampere) and abA (abampere/biot).
-
Granular Exports: Added separate library entry points (e.g., package:quantify/length.dart) to allow for explicit imports and prevent namespace conflicts.
[0.4.0] #
2025-06-23
Added #
-
New Quantity:
Angle
Angle
quantityAngleUnit
:radian
(rad): The SI-derived unit, used as the base for conversions.degree
(°): The most common unit for angles.gradian
(grad): Unit used in surveying (400 grad in a circle).revolution
(rev): Represents a full circle or turn.arcminute
('): High-precision unit (1/60 of a degree).arcsecond
("): High-precision unit (1/60 of an arcminute).milliradian
(mrad): Common in optics and ballistics.
- Standard arithmetic operators (
+
,-
,*
,/
) forAngle
.
-
New Quantity:
AngularVelocity
AngularVelocity
quantity - represents rotational speed.AngularVelocityUnit
:radianPerSecond
(rad/s): The SI-derived unit.degreePerSecond
(°/s).revolutionPerMinute
(rpm): A widely used unit for rotational speed.revolutionPerSecond
(rps).
- Standard arithmetic operators for
AngularVelocity
.
[0.3.0] #
2025-06-21
Added #
- Expanded Unit Coverage:
- Length:
- SI Prefixes:
hm
(hectometer),dam
(decameter),dm
(decimeter),μm
(micrometer),nm
(nanometer),pm
(picometer),fm
(femtometer). - Astronomical:
AU
(astronomical unit),ly
(light year),pc
(parsec). - Special:
Å
(ångström).
- SI Prefixes:
- Mass:
- SI Prefixes:
hg
(hectogram),dag
(decagram),dg
(decigram),cg
(centigram),μg
(microgram),ng
(nanogram). - Imperial/US:
short ton
,long ton
. - Special:
u
(atomic mass unit),ct
(carat).
- SI Prefixes:
- Time:
- SI Prefixes:
μs
(microsecond),ns
(nanosecond),ps
(picosecond). - Calendar:
wk
(week),mo
(month),yr
(year).
- SI Prefixes:
- Temperature:
- Absolute Scale:
°R
(rankine).
- Absolute Scale:
- Length:
[0.2.0] #
2025-06-16
Added #
- New SI Base Quantity Types (completing all 7 SI base units):
- Mass:
Mass
class andMassUnit
enum (kg
,g
,mg
,t
(tonne),lb
,oz
,st
(stone),slug
).
- Amount of Substance (Molar Amount):
MolarAmount
class andMolarUnit
enum (mol
,mmol
,µmol
,nmol
,pmol
,kmol
).
- Electric Current:
Current
class andCurrentUnit
enum (A
,mA
,µA
,nA
,kA
).
- Luminous Intensity:
LuminousIntensity
class andLuminousIntensityUnit
enum (cd
,mcd
,kcd
).
- Mass:
[0.1.0] #
2025-06-12
Added #
- Initial Release of
quantify
v0.1.0 - Core Functionality:
- Type-safe
Quantity
base class for representing physical quantities with a value and a unit. Unit
interface for defining conversion factors and symbols.- Immutable
Quantity
objects. double
precision for quantity values.- Elegant API with extension methods on
num
for quantity creation (e.g.,10.m
,20.celsius
). - Extension methods on
Quantity
for easy value retrieval in target units (e.g.,length.inKm
) and for obtaining newQuantity
objects in target units (e.g.,length.asKm
). - Configurable
toString()
method onQuantity
objects supporting:- Conversion to a
targetUnit
before formatting. - Fixed
fractionDigits
. - Option to
showUnitSymbol
. - Custom
unitSymbolSeparator
. - Locale-aware number formatting via
locale
parameter (usingintl
package). - Full control over number formatting via
numberFormat
parameter (usingintl
package).
- Conversion to a
- Arithmetic operations (
+
,-
,*
by scalar,/
by scalar) for most quantities. - Specialized arithmetic for
Temperature
(differenceT - T
returnsdouble
, ratioT / T
returnsdouble
). Comparable
interface implementation for sorting quantities by magnitude.==
operator override for value and unit equality.
- Type-safe
- Supported Quantity Types (with units and extensions):
- Length: Meter (m), Kilometer (km), Centimeter (cm), Millimeter (mm), Inch (in), Foot (ft), Yard (yd), Mile (mi), Nautical Mile (nmi).
- Time: Second (s), Millisecond (ms), Minute (min), Hour (h), Day (d).
- Temperature: Kelvin (K), Celsius (°C), Fahrenheit (°F). Handles affine conversions correctly.
- Pressure: Pascal (Pa), Atmosphere (atm), Bar (bar), PSI (psi), Torr, mmHg, inHg, kPa, hPa, mbar, cmH₂O, inH₂O.