fix(baseN): zero counting, speedtests

This commit is contained in:
2024-09-12 11:14:53 +03:00
parent 6e159f40ee
commit 6065245b82
2 changed files with 8 additions and 8 deletions

View File

@ -41,7 +41,7 @@ namespace baseN
idx_str = enc_size - 1; idx_str = enc_size - 1;
uint16_t div = data[idx_div++]; uint16_t div = data[idx_div++];
while (data[zero_count] == 0) while (zero_count < (int64_t)data_size && data[zero_count] == 0)
{ {
zero_count++; zero_count++;
} }
@ -113,7 +113,7 @@ namespace baseN
idx_quo_last = dec_size - 2; idx_quo_last = dec_size - 2;
uint16_t div; uint16_t div;
while (str[zero_count] == digits[0]) while (str[zero_count] != '\0' && str[zero_count] == digits[0])
{ {
zero_count++; zero_count++;
} }

View File

@ -39,10 +39,10 @@ TEST(baseN, encode)
EXPECT_EQ("KyKXa", encode(hex::decode("0ccbd755"), 58, b58digits)); EXPECT_EQ("KyKXa", encode(hex::decode("0ccbd755"), 58, b58digits));
EXPECT_EQ("KyKXaa", encode(hex::decode("02e62ec963"), 58, b58digits)); EXPECT_EQ("KyKXaa", encode(hex::decode("02e62ec963"), 58, b58digits));
} }
// TEST(baseN, encode_1e6) // TEST(baseN, encode_1e3)
// { // {
// std::vector<uint8_t> data(1e6); // std::vector<uint8_t> data(1e3);
// encode(data); // encode(data, 58, b58digits, data.size() * 138 / 100 + 1);
// } // }
TEST(baseN, decode) TEST(baseN, decode)
{ {
@ -52,10 +52,10 @@ TEST(baseN, decode)
EXPECT_EQ(hex::encode(decode("KyKXa", 58, b58digits, b58map)), "0ccbd755"); EXPECT_EQ(hex::encode(decode("KyKXa", 58, b58digits, b58map)), "0ccbd755");
EXPECT_EQ(hex::encode(decode("KyKXaa", 58, b58digits, b58map)), "02e62ec963"); EXPECT_EQ(hex::encode(decode("KyKXaa", 58, b58digits, b58map)), "02e62ec963");
} }
// TEST(baseN, decode_1e6) // TEST(baseN, decode_1e4)
// { // {
// std::string str(1e6, '0'); // std::string str(1e4, '1');
// decode(str); // decode(str, 58, b58digits, b58map, str.size() * 733 / 1000 + 1);
// } // }
int main(int argc, char **argv) int main(int argc, char **argv)