Source code for testing.projects.cpp_long_names
"""
The ``cpp_long_names`` test project.
"""
import os
import platform
from testing import TEST_PROJECTS_ROOT
from testing.hierarchies import \
clike, define, directory, enum, file, function, namespace, parameters, typedef, \
union, variable
RUN_ABSURD_TEST = platform.system() != "Windows"
"""
When ``platform.system() != "Windows"``, :data:`ABSURD_DIRECTORY_PATH` is created.
"""
[docs]
def make_it_big(prefix):
"""Mirrors the macro ``MAKE_IT_BIG`` in ``absurdly_long_names.hpp``."""
big = [
prefix, "that", "is", "longer", "than", "two", "hundred", "and", "fifty",
"five", "characters", "long", "which", "is", "an", "absolutely", "and",
"completely", "ridiculous", "thing", "to", "do", "and", "if", "you", "did",
"this", "in", "the", "real", "world", "you", "put", "yourself", "comfortably",
"in", "a", "position", "to", "be", "downsized", "and", "outta", "here", "as",
"soul", "position", "would", "explain", "to", "you"
]
return "_".join(big)
ABSURD_DIRECTORY_PATH = os.path.abspath(os.path.join(
TEST_PROJECTS_ROOT,
"cpp_long_names",
"include",
make_it_big("directory_structure").replace("_", os.sep)
))
"""
The absurd directory path that will be created depending on :data:`RUN_ABSURD_TEST`.
"""
[docs]
def default_class_hierarchy_dict():
"""Return the default class hierarchy dictionary."""
return {}
[docs]
def default_file_hierarchy_dict():
"""
Return the default file hierarchy dictionary.
If :data:`RUN_ABSURD_TEST` is ``True``, :data:`ABSURD_DIRECTORY_PATH` will be
incorporated in the returned dictionary.
"""
absurdly_long_names_hpp_contents = {
define("MAKE_IT_BIG"): {},
clike("class", make_it_big("class")): {},
clike("struct", make_it_big("struct")): {},
function("std::string", make_it_big("function")): parameters(),
enum(make_it_big("enum")): {}, # TODO: values("first", "second", "third"),
namespace(make_it_big("namespace")): {
variable("int", "value"): {}
},
define(make_it_big("define").upper()): {},
variable("int", make_it_big("variable")): {},
typedef(make_it_big("typedef"), "float"): {},
union(make_it_big("union")): {}
}
if RUN_ABSURD_TEST:
absurd_directory_structure = {
directory("structure"): {
directory("that"): {
directory("is"): {
directory("longer"): {
directory("than"): {
directory("two"): {
directory("hundred"): {
directory("and"): {
directory("fifty"): {
directory("five"): {
directory("characters"): {
directory("long"): {
directory("which"): {
directory("is"): {
directory("an"): {
directory("absolutely"): {
directory("and"): {
directory("completely"): {
directory("ridiculous"): {
directory("thing"): {
directory("to"): {
directory("do"): { # noqa: E501
directory("and"): { # noqa: E501
directory("if"): { # noqa: E501
directory("you"): { # noqa: E501
directory("did"): { # noqa: E501
directory("this"): { # noqa: E501
directory("in"): { # noqa: E501
directory("the"): { # noqa: E501
directory("real"): { # noqa: E501
directory("world"): { # noqa: E501
directory("you"): { # noqa: E501
directory("put"): { # noqa: E501
directory("yourself"): { # noqa: E501
directory("comfortably"): { # noqa: E501
directory("in"): { # noqa: E501
directory("a"): { # noqa: E501
directory("position"): { # noqa: E501
directory("to"): { # noqa: E501
directory("be"): { # noqa: E501
directory("downsized"): { # noqa: E501
directory("and"): { # noqa: E501
directory("outta"): { # noqa: E501
directory("here"): { # noqa: E501
directory("as"): { # noqa: E501
directory("soul"): { # noqa: E501
directory("position"): { # noqa: E501
directory("would"): { # noqa: E501
directory("explain"): { # noqa: E501
directory("to"): { # noqa: E501
directory("you"): { # noqa: E501
file("a_file.hpp"): { # noqa: E501
function("std::string", "extremely_nested"): parameters() # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
} # noqa: E501
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return {
directory("include"): {
file("absurdly_long_names.hpp"): absurdly_long_names_hpp_contents,
directory("directory"): absurd_directory_structure
}
}
else:
return {
directory("include"): {
file("absurdly_long_names.hpp"): absurdly_long_names_hpp_contents
}
}