proconlib

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub anqooqie/proconlib

:heavy_check_mark: tests/digit_sum.test.cpp

Depends on

Code

// competitive-verifier: STANDALONE

#include <iostream>
#include "tools/assert_that.hpp"
#include "tools/digit_sum.hpp"

using ll = long long;

int main() {
  std::cin.tie(nullptr);
  std::ios_base::sync_with_stdio(false);

  assert_that(tools::digit_sum<ll>(0) == 0);
  assert_that(tools::digit_sum<ll>(1) == 1);
  assert_that(tools::digit_sum<ll>(2) == 2);
  assert_that(tools::digit_sum<ll>(3) == 3);
  assert_that(tools::digit_sum<ll>(4) == 4);
  assert_that(tools::digit_sum<ll>(5) == 5);
  assert_that(tools::digit_sum<ll>(6) == 6);
  assert_that(tools::digit_sum<ll>(7) == 7);
  assert_that(tools::digit_sum<ll>(8) == 8);
  assert_that(tools::digit_sum<ll>(9) == 9);
  assert_that(tools::digit_sum<ll>(10) == 1);
  assert_that(tools::digit_sum<ll>(11) == 2);
  assert_that(tools::digit_sum<ll>(12) == 3);
  assert_that(tools::digit_sum<ll>(13) == 4);
  assert_that(tools::digit_sum<ll>(14) == 5);
  assert_that(tools::digit_sum<ll>(15) == 6);
  assert_that(tools::digit_sum<ll>(16) == 7);
  assert_that(tools::digit_sum<ll>(17) == 8);
  assert_that(tools::digit_sum<ll>(18) == 9);
  assert_that(tools::digit_sum<ll>(19) == 10);
  assert_that(tools::digit_sum<ll>(20) == 2);
  assert_that(tools::digit_sum<ll>(90) == 9);
  assert_that(tools::digit_sum<ll>(91) == 10);
  assert_that(tools::digit_sum<ll>(92) == 11);
  assert_that(tools::digit_sum<ll>(93) == 12);
  assert_that(tools::digit_sum<ll>(94) == 13);
  assert_that(tools::digit_sum<ll>(95) == 14);
  assert_that(tools::digit_sum<ll>(96) == 15);
  assert_that(tools::digit_sum<ll>(97) == 16);
  assert_that(tools::digit_sum<ll>(98) == 17);
  assert_that(tools::digit_sum<ll>(99) == 18);
  assert_that(tools::digit_sum<ll>(100) == 1);
  assert_that(tools::digit_sum<ll>(101) == 2);
  assert_that(tools::digit_sum<ll>(999) == 27);
  assert_that(tools::digit_sum<ll>(1000) == 1);
  assert_that(tools::digit_sum<ll>(999999999999999999) == 162);
  assert_that(tools::digit_sum<ll>(1000000000000000000) == 1);
  assert_that(tools::digit_sum<ll>(1000000000000000001) == 2);
  assert_that(tools::digit_sum<ll>(8999999999999999999) == 170);
  assert_that(tools::digit_sum<ll>(9223372036854775806) == 87);
  assert_that(tools::digit_sum<ll>(9223372036854775807) == 88);

  return 0;
}
#line 1 "tests/digit_sum.test.cpp"
// competitive-verifier: STANDALONE

#include <iostream>
#line 1 "tools/assert_that.hpp"



#line 5 "tools/assert_that.hpp"
#include <cstdlib>

#define assert_that_impl(cond, file, line, func) do {\
  if (!cond) {\
    ::std::cerr << file << ':' << line << ": " << func << ": Assertion `" << #cond << "' failed." << '\n';\
    ::std::exit(EXIT_FAILURE);\
  }\
} while (false)
#define assert_that(...) assert_that_impl((__VA_ARGS__), __FILE__, __LINE__, __func__)


#line 1 "tools/digit_sum.hpp"



#include <cassert>

namespace tools {

  template <typename T>
  T digit_sum(T n) {
    assert(n >= 0);
    T sum = 0;
    for (; n > 0; n /= 10) {
      sum += n % 10;
    }
    return sum;
  }
}


#line 6 "tests/digit_sum.test.cpp"

using ll = long long;

int main() {
  std::cin.tie(nullptr);
  std::ios_base::sync_with_stdio(false);

  assert_that(tools::digit_sum<ll>(0) == 0);
  assert_that(tools::digit_sum<ll>(1) == 1);
  assert_that(tools::digit_sum<ll>(2) == 2);
  assert_that(tools::digit_sum<ll>(3) == 3);
  assert_that(tools::digit_sum<ll>(4) == 4);
  assert_that(tools::digit_sum<ll>(5) == 5);
  assert_that(tools::digit_sum<ll>(6) == 6);
  assert_that(tools::digit_sum<ll>(7) == 7);
  assert_that(tools::digit_sum<ll>(8) == 8);
  assert_that(tools::digit_sum<ll>(9) == 9);
  assert_that(tools::digit_sum<ll>(10) == 1);
  assert_that(tools::digit_sum<ll>(11) == 2);
  assert_that(tools::digit_sum<ll>(12) == 3);
  assert_that(tools::digit_sum<ll>(13) == 4);
  assert_that(tools::digit_sum<ll>(14) == 5);
  assert_that(tools::digit_sum<ll>(15) == 6);
  assert_that(tools::digit_sum<ll>(16) == 7);
  assert_that(tools::digit_sum<ll>(17) == 8);
  assert_that(tools::digit_sum<ll>(18) == 9);
  assert_that(tools::digit_sum<ll>(19) == 10);
  assert_that(tools::digit_sum<ll>(20) == 2);
  assert_that(tools::digit_sum<ll>(90) == 9);
  assert_that(tools::digit_sum<ll>(91) == 10);
  assert_that(tools::digit_sum<ll>(92) == 11);
  assert_that(tools::digit_sum<ll>(93) == 12);
  assert_that(tools::digit_sum<ll>(94) == 13);
  assert_that(tools::digit_sum<ll>(95) == 14);
  assert_that(tools::digit_sum<ll>(96) == 15);
  assert_that(tools::digit_sum<ll>(97) == 16);
  assert_that(tools::digit_sum<ll>(98) == 17);
  assert_that(tools::digit_sum<ll>(99) == 18);
  assert_that(tools::digit_sum<ll>(100) == 1);
  assert_that(tools::digit_sum<ll>(101) == 2);
  assert_that(tools::digit_sum<ll>(999) == 27);
  assert_that(tools::digit_sum<ll>(1000) == 1);
  assert_that(tools::digit_sum<ll>(999999999999999999) == 162);
  assert_that(tools::digit_sum<ll>(1000000000000000000) == 1);
  assert_that(tools::digit_sum<ll>(1000000000000000001) == 2);
  assert_that(tools::digit_sum<ll>(8999999999999999999) == 170);
  assert_that(tools::digit_sum<ll>(9223372036854775806) == 87);
  assert_that(tools::digit_sum<ll>(9223372036854775807) == 88);

  return 0;
}
Back to top page