Add Tests for ZCG cpp

This commit is contained in:
Jan
2021-02-10 18:03:50 +01:00
parent 31497d804c
commit f9ef7cc35b
102 changed files with 502 additions and 21 deletions

View File

@ -0,0 +1,11 @@
#pragma once
class AlignmentUtils
{
public:
template<typename T>
static T Align(T number, T alignmentValue)
{
return (number + (alignmentValue - 1)) / alignmentValue * alignmentValue;
}
};

View File

@ -0,0 +1,39 @@
#include "NamespaceBuilder.h"
#include <sstream>
std::string NamespaceBuilder::Combine(const std::string& _namespace, const std::string& name)
{
std::ostringstream str;
str << _namespace << "::" << name;
return str.str();
}
void NamespaceBuilder::Push(std::string element)
{
m_elements.emplace_back(std::move(element));
}
void NamespaceBuilder::Pop()
{
m_elements.pop_back();
}
std::string NamespaceBuilder::ToString()
{
std::ostringstream str;
auto first = true;
for(const auto& element : m_elements)
{
if (first)
first = false;
else
str << "::";
str << element;
}
return str.str();
}

View File

@ -0,0 +1,16 @@
#pragma once
#include <string>
#include <vector>
class NamespaceBuilder
{
std::vector<std::string> m_elements;
public:
static std::string Combine(const std::string& _namespace, const std::string& name);
void Push(std::string element);
void Pop();
std::string ToString();
};