};
 $unitTests['Eval Template'] = function () {
     date_default_timezone_set('UTC');
     $expected = 'My String at 08:39 06.02.1970 with 3.14 % of pie';
     $template = '%string at %date[H:i d.m.Y] with %number$3.2f % of pie';
     $object = (object) array('string' => 'My String', 'date' => new DateTime('@3141592'), 'number' => 3.1415);
     $evaluated_static = SimpleHTMLBuilder::evalTemplateString($template, $object);
     $evaluated_object = (new SimpleHTMLBuilder())->append($template)->evalTemplate($object);
     return $evaluated_static == $expected && $evaluated_object == $expected;
 };
 $unitTests['Eval Template with Escape HTML'] = function () {
     date_default_timezone_set('UTC');
     $expected = 'My <String> at 08:39 06.02.1970 with 3.14 % of pie';
     $template = '%string at %date[H:i d.m.Y] with %number$3.2f % of pie';
     $object = (object) array('string' => 'My <String>', 'date' => new DateTime('@3141592'), 'number' => 3.1415);
     $evaluated_static = SimpleHTMLBuilder::evalTemplateString($template, $object, true);
     $evaluated_object = (new SimpleHTMLBuilder())->append($template)->evalTemplate($object, true);
     return $evaluated_static == $expected && $evaluated_object == $expected;
 };
 $unitTests['Open Tags'] = function () {
     $builder = new SimpleHTMLBuilder();
     $builder->body()->div()->close('div')->p()->em();
     return array('body', 'p', 'em') == $builder->openTags();
 };
 $unitTests['Close Until (default options)'] = function () {
     $builder = new SimpleHTMLBuilder();
     $builder->body()->div()->closeUntil('body');
     return '<body><div></div></body>' == $builder;
 };
 $unitTests['Close Until (exclude tag)'] = function () {
     $builder = new SimpleHTMLBuilder(array('openTags' => function () {