git repos / blockattack-game

blame: source/misc/embedded_libs/fmt-11.0.2/test/enforce-checks-test.cc

normal view · raw

f8deb5b9 Poul Sander 2022-01-15 13:55 1
// Formatting library for C++ - formatting library tests
f8deb5b9 Poul Sander 2022-01-15 13:55 2
//
f8deb5b9 Poul Sander 2022-01-15 13:55 3
// Copyright (c) 2012 - present, Victor Zverovich
f8deb5b9 Poul Sander 2022-01-15 13:55 4
// All rights reserved.
f8deb5b9 Poul Sander 2022-01-15 13:55 5
//
f8deb5b9 Poul Sander 2022-01-15 13:55 6
// For the license information refer to format.h.
f8deb5b9 Poul Sander 2022-01-15 13:55 7
f8deb5b9 Poul Sander 2022-01-15 13:55 8
#include <iterator>
f8deb5b9 Poul Sander 2022-01-15 13:55 9
#include <vector>
f8deb5b9 Poul Sander 2022-01-15 13:55 10
47fd5c32 Poul Sander 2024-10-05 08:44 11
#define I 42  // simulate https://en.cppreference.com/w/c/numeric/complex/I
f8deb5b9 Poul Sander 2022-01-15 13:55 12
#include "fmt/chrono.h"
f8deb5b9 Poul Sander 2022-01-15 13:55 13
#include "fmt/color.h"
f8deb5b9 Poul Sander 2022-01-15 13:55 14
#include "fmt/format.h"
f8deb5b9 Poul Sander 2022-01-15 13:55 15
#include "fmt/ostream.h"
f8deb5b9 Poul Sander 2022-01-15 13:55 16
#include "fmt/ranges.h"
f8deb5b9 Poul Sander 2022-01-15 13:55 17
#include "fmt/xchar.h"
47fd5c32 Poul Sander 2024-10-05 08:44 18
#undef I
f8deb5b9 Poul Sander 2022-01-15 13:55 19
f8deb5b9 Poul Sander 2022-01-15 13:55 20
// Exercise the API to verify that everything we expect to can compile.
f8deb5b9 Poul Sander 2022-01-15 13:55 21
void test_format_api() {
f8deb5b9 Poul Sander 2022-01-15 13:55 22
  (void)fmt::format(FMT_STRING("{}"), 42);
f8deb5b9 Poul Sander 2022-01-15 13:55 23
  (void)fmt::format(FMT_STRING(L"{}"), 42);
f8deb5b9 Poul Sander 2022-01-15 13:55 24
  (void)fmt::format(FMT_STRING("noop"));
f8deb5b9 Poul Sander 2022-01-15 13:55 25
f8deb5b9 Poul Sander 2022-01-15 13:55 26
  (void)fmt::to_string(42);
f8deb5b9 Poul Sander 2022-01-15 13:55 27
  (void)fmt::to_wstring(42);
f8deb5b9 Poul Sander 2022-01-15 13:55 28
f8deb5b9 Poul Sander 2022-01-15 13:55 29
  std::vector<char> out;
f8deb5b9 Poul Sander 2022-01-15 13:55 30
  fmt::format_to(std::back_inserter(out), FMT_STRING("{}"), 42);
f8deb5b9 Poul Sander 2022-01-15 13:55 31
f8deb5b9 Poul Sander 2022-01-15 13:55 32
  char buffer[4];
f8deb5b9 Poul Sander 2022-01-15 13:55 33
  fmt::format_to_n(buffer, 3, FMT_STRING("{}"), 12345);
f8deb5b9 Poul Sander 2022-01-15 13:55 34
f8deb5b9 Poul Sander 2022-01-15 13:55 35
  wchar_t wbuffer[4];
f8deb5b9 Poul Sander 2022-01-15 13:55 36
  fmt::format_to_n(wbuffer, 3, FMT_STRING(L"{}"), 12345);
f8deb5b9 Poul Sander 2022-01-15 13:55 37
}
f8deb5b9 Poul Sander 2022-01-15 13:55 38
f8deb5b9 Poul Sander 2022-01-15 13:55 39
void test_chrono() {
f8deb5b9 Poul Sander 2022-01-15 13:55 40
  (void)fmt::format(FMT_STRING("{}"), std::chrono::seconds(42));
f8deb5b9 Poul Sander 2022-01-15 13:55 41
  (void)fmt::format(FMT_STRING(L"{}"), std::chrono::seconds(42));
f8deb5b9 Poul Sander 2022-01-15 13:55 42
}
f8deb5b9 Poul Sander 2022-01-15 13:55 43
f8deb5b9 Poul Sander 2022-01-15 13:55 44
void test_text_style() {
f8deb5b9 Poul Sander 2022-01-15 13:55 45
  fmt::print(fg(fmt::rgb(255, 20, 30)), FMT_STRING("{}"), "rgb(255,20,30)");
f8deb5b9 Poul Sander 2022-01-15 13:55 46
  (void)fmt::format(fg(fmt::rgb(255, 20, 30)), FMT_STRING("{}"),
f8deb5b9 Poul Sander 2022-01-15 13:55 47
                    "rgb(255,20,30)");
f8deb5b9 Poul Sander 2022-01-15 13:55 48
f8deb5b9 Poul Sander 2022-01-15 13:55 49
  fmt::text_style ts = fg(fmt::rgb(255, 20, 30));
f8deb5b9 Poul Sander 2022-01-15 13:55 50
  std::string out;
f8deb5b9 Poul Sander 2022-01-15 13:55 51
  fmt::format_to(std::back_inserter(out), ts,
f8deb5b9 Poul Sander 2022-01-15 13:55 52
                 FMT_STRING("rgb(255,20,30){}{}{}"), 1, 2, 3);
f8deb5b9 Poul Sander 2022-01-15 13:55 53
}
f8deb5b9 Poul Sander 2022-01-15 13:55 54
f8deb5b9 Poul Sander 2022-01-15 13:55 55
void test_range() {
f8deb5b9 Poul Sander 2022-01-15 13:55 56
  std::vector<char> hello = {'h', 'e', 'l', 'l', 'o'};
f8deb5b9 Poul Sander 2022-01-15 13:55 57
  (void)fmt::format(FMT_STRING("{}"), hello);
f8deb5b9 Poul Sander 2022-01-15 13:55 58
}
f8deb5b9 Poul Sander 2022-01-15 13:55 59
f8deb5b9 Poul Sander 2022-01-15 13:55 60
int main() {
f8deb5b9 Poul Sander 2022-01-15 13:55 61
  test_format_api();
f8deb5b9 Poul Sander 2022-01-15 13:55 62
  test_chrono();
f8deb5b9 Poul Sander 2022-01-15 13:55 63
  test_text_style();
f8deb5b9 Poul Sander 2022-01-15 13:55 64
  test_range();
f8deb5b9 Poul Sander 2022-01-15 13:55 65
}
1970-01-01 00:00 66