LCOV - code coverage report
Current view: top level - utils - base32.dart (source / functions) Coverage Total Hit
Test: lcov.info Lines: 85.7 % 14 12
Test Date: 2025-01-30 01:10:00 Functions: - 0 0

            Line data    Source code
       1              : import 'dart:typed_data';
       2              : 
       3              : class Base32 {
       4              :   static const CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';
       5              : 
       6           12 :   static final Map<String, int> CHARSET_INVERSE_INDEX = {
       7              :     'q': 0,
       8              :     'p': 1,
       9              :     'z': 2,
      10              :     'r': 3,
      11              :     'y': 4,
      12              :     '9': 5,
      13              :     'x': 6,
      14              :     '8': 7,
      15              :     'g': 8,
      16              :     'f': 9,
      17              :     '2': 10,
      18              :     't': 11,
      19              :     'v': 12,
      20              :     'd': 13,
      21              :     'w': 14,
      22              :     '0': 15,
      23              :     's': 16,
      24              :     '3': 17,
      25              :     'j': 18,
      26              :     'n': 19,
      27              :     '5': 20,
      28              :     '4': 21,
      29              :     'k': 22,
      30              :     'h': 23,
      31              :     'c': 24,
      32              :     'e': 25,
      33              :     '6': 26,
      34              :     'm': 27,
      35              :     'u': 28,
      36              :     'a': 29,
      37              :     '7': 30,
      38              :     'l': 31,
      39              :   };
      40              : 
      41              :   /// Encodes the given list of 5-bit integers as a base32-encoded string.
      42            3 :   String encode(Uint8List data) {
      43              :     String base32 = '';
      44            9 :     for (var i = 0; i < data.length; ++i) {
      45            3 :       var value = data[i];
      46            6 :       if (value < 0 || value >= 32) {
      47            0 :         throw FormatException('Invalid value: $value.');
      48              :       }
      49            6 :       base32 += CHARSET[value];
      50              :     }
      51              :     return base32;
      52              :   }
      53              : 
      54              :   /// Decodes the given base32-encoded string into a list of 5-bit integers.
      55            4 :   Uint8List decode(String string) {
      56            8 :     final data = Uint8List(string.length);
      57           12 :     for (var i = 0; i < string.length; ++i) {
      58            4 :       var value = string[i];
      59            8 :       if (!CHARSET_INVERSE_INDEX.containsKey(value)) {
      60            0 :         throw FormatException('Invalid value: $value.');
      61              :       }
      62           12 :       data[i] = CHARSET_INVERSE_INDEX[value]!;
      63              :     }
      64              :     return data;
      65              :   }
      66              : }
        

Generated by: LCOV version 2.0-1