LCOV - code coverage report
Current view: top level - src - temperature.dart (source / functions) Hit Total Coverage
Test: coverage report Lines: 19 19 100.0 %
Date: 2017-10-14 16:50:29 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:math';
       2             : 
       3             : class Temperature implements Comparable<Temperature> {
       4             :     /*
       5             :    * The value of this Temperature object in celsius degrees.
       6             :    */
       7             :     final double _temperature;
       8             : 
       9             :     ///celsius to fahrenheit
      10           3 :     static double _celsius_to_fahrenheit(double value) => value * 9 / 5 + 32;
      11             :     ///to/from kelvin
      12             :     static const double _kelvin = 273.15;
      13           3 :     static double _kelvin_to_celsius(double value) => value < 0 ? -_kelvin : value - _kelvin;
      14             : 
      15             :     ///celsius to rankine
      16           4 :     static double _celsius_to_rankine(double value) => value * 9 / 5 + 32 + 459.67;
      17             :     ///celsius to romer
      18           3 :     static double _celsius_to_romer(double value) => value * 21 / 40 + 7.5;
      19             : 
      20             :     ///fahrenheit to celsius
      21           3 :     static double _fahrenheit_to_celsius(double value) => (value - 32) * 5/9;
      22             :     ///rankine to celsius
      23           6 :     static double _rankine_to_celsius(double value) => value < 0 ? -_kelvin : (value - 459.67 - 32) * 5/9;
      24             :     ///romer to celsius
      25           3 :     static double _romer_to_celsius(double value) => (value - 7.5) * 40/21;
      26             : 
      27           1 :     Temperature.fromCelsius({double value : 0.0}): _temperature = value;
      28           2 :     Temperature.fromFahrenheit({double value : 0.0}): _temperature = _fahrenheit_to_celsius(value);
      29           2 :     Temperature.fromKelvin({double value : 0.0}): _temperature = _kelvin_to_celsius(value);
      30           2 :     Temperature.fromRankine({double value : 0.0}): _temperature = _rankine_to_celsius(value);
      31           2 :     Temperature.fromRomer({double value : 0.0}): _temperature = _romer_to_celsius(value);
      32             : 
      33             : 
      34           2 :     double get inCelsius => _returnValue(_temperature);
      35           3 :     double get inFahrenheit => _returnValue(_celsius_to_fahrenheit(_temperature));
      36           3 :     double get inKelvin => _returnValue(_temperature + _kelvin);
      37           3 :     double get inRankine => _returnValue(_celsius_to_rankine(_temperature));
      38           3 :     double get inRomer => _returnValue(_celsius_to_romer(_temperature));
      39             : 
      40           2 :     double _returnValue(num value) => double.parse(value.toStringAsFixed(6));
      41             : 
      42             :     /**
      43             :      * Compares this Temperature to [other], returning zero if the values are equal.
      44             :      *
      45             :      * Returns a negative integer if this `Temperature` is shorter than
      46             :      * [other], or a positive integer if it is longer.
      47             :      *
      48             :      * A negative `Temperature` is always considered shorter than a positive one.
      49             :      *
      50             :      */
      51           3 :     int compareTo(Temperature other) => _temperature.compareTo(other._temperature);
      52             : }

Generated by: LCOV version 1.13