Galactic Bloodshed
shlmisc_test.cc
Go to the documentation of this file.
1 #include "gb/shlmisc.h"
2 
3 #include <cassert>
4 #include <optional>
5 #include <string>
6 
7 #include "gb/GB_server.h"
8 #include "gb/buffers.h"
9 #include "gb/build.h"
10 #include "gb/globals.h"
11 #include "gb/map.h"
12 
13 // TODO(jeffbailey): Puke. Detangling the dependencies is too
14 // big right now, so this code is duplicated.
16  if (s.size() > 1 && s[0] == '#') {
17  s.remove_prefix(1);
18  return string_to_shipnum(s);
19  }
20 
21  if (s.size() > 0 && std::isdigit(s[0])) {
22  return (std::stoi(std::string(s.begin(), s.end())));
23  }
24  return {};
25 }
26 
27 int main() {
28  auto a = string_to_shipnum("123");
29  assert(*a == 123);
30  auto b = string_to_shipnum("#123");
31  assert(*b == 123);
32  auto c = string_to_shipnum("##123");
33  assert(*c == 123);
34  auto d = string_to_shipnum("abc");
35  assert(!d);
36  auto e = string_to_shipnum("##abc");
37  assert(!e);
38  auto f = string_to_shipnum("");
39  assert(!f);
40 }
int main()
Definition: shlmisc_test.cc:27
std::optional< shipnum_t > string_to_shipnum(std::string_view s)
Convert input string to a shipnum_t.
Definition: shlmisc_test.cc:15