LCOV - code coverage report
Current view: top level - src - filesize.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 18 29 62.1 %
Date: 2019-05-04 22:26:33 Functions: 0 0 -

          Line data    Source code
       1             : /// A method returns a human readable string representing a file _size
       2           1 : String filesize(dynamic size, [int round = 2]) {
       3             :   /** 
       4             :    * [size] can be passed as number or as string
       5             :    *
       6             :    * the optional parameter [round] specifies the number 
       7             :    * of digits after comma/point (default is 2)
       8             :    */
       9             :   int divider = 1024;
      10             :   int _size;
      11             :   try {
      12           2 :     _size = int.parse(size.toString());
      13             :   } catch (e) {
      14           0 :     throw ArgumentError("Can not parse the size parameter: $e");
      15             :   }
      16             : 
      17           2 :   if (_size < divider) return "$_size B";
      18             : 
      19           4 :   if (_size < divider * divider && _size % divider == 0)
      20           3 :     return "${(_size / divider).toStringAsFixed(0)} KB";
      21             : 
      22           2 :   if (_size < divider * divider)
      23           3 :     return "${(_size / divider).toStringAsFixed(round)} KB";
      24             : 
      25           5 :   if (_size < divider * divider * divider && _size % divider == 0)
      26           0 :     return "${(_size / (divider * divider)).toStringAsFixed(0)} MB";
      27             : 
      28           3 :   if (_size < divider * divider * divider)
      29           4 :     return "${(_size / divider / divider).toStringAsFixed(round)} MB";
      30             : 
      31           4 :   if (_size < divider * divider * divider * divider && _size % divider == 0)
      32           0 :     return "${(_size / (divider * divider * divider)).toStringAsFixed(0)} GB";
      33             : 
      34           4 :   if (_size < divider * divider * divider * divider)
      35           0 :     return "${(_size / divider / divider / divider).toStringAsFixed(round)} GB";
      36             : 
      37           5 :   if (_size < divider * divider * divider * divider * divider &&
      38           0 :       _size % divider == 0) {
      39           0 :     num r = _size / divider / divider / divider / divider;
      40           0 :     return "${r.toStringAsFixed(0)} TB";
      41             :   }
      42             : 
      43           5 :   if (_size < divider * divider * divider * divider * divider) {
      44           0 :     num r = _size / divider / divider / divider / divider;
      45           0 :     return "${r.toStringAsFixed(round)} TB";
      46             :   }
      47             : 
      48           6 :   if (_size < divider * divider * divider * divider * divider * divider &&
      49           2 :       _size % divider == 0) {
      50           0 :     num r = _size / divider / divider / divider / divider / divider;
      51           0 :     return "${r.toStringAsFixed(0)} PB";
      52             :   } else {
      53           5 :     num r = _size / divider / divider / divider / divider / divider;
      54           2 :     return "${r.toStringAsFixed(round)} PB";
      55             :   }
      56             : }

Generated by: LCOV version 1.13