forked from sebastienros/fluid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BaseBenchmarks.cs
58 lines (45 loc) · 2.2 KB
/
BaseBenchmarks.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System.Collections.Generic;
using System.IO;
namespace Fluid.Benchmarks
{
public abstract class BaseBenchmarks
{
protected List<Product> Products = new List<Product>(ProductCount);
protected const int ProductCount = 500;
protected const string Lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum";
protected readonly static string ProductTemplate;
protected readonly static string ProductTemplateMustache;
protected readonly static string BlogPostTemplate;
static BaseBenchmarks()
{
var assembly = typeof(BaseBenchmarks).Assembly;
using (var stream = assembly.GetManifestResourceStream("Fluid.Benchmarks.product.liquid"))
{
using var streamReader = new StreamReader(stream);
ProductTemplate = streamReader.ReadToEnd();
}
using (var stream = assembly.GetManifestResourceStream("Fluid.Benchmarks.product.mustache"))
{
using var streamReader = new StreamReader(stream);
ProductTemplateMustache = streamReader.ReadToEnd();
}
using (var stream = assembly.GetManifestResourceStream("Fluid.Benchmarks.blogpost.liquid"))
{
using var streamReader = new StreamReader(stream);
BlogPostTemplate = streamReader.ReadToEnd();
}
}
public BaseBenchmarks()
{
for (int i = 0; i < ProductCount; i++)
{
var product = new Product("Name" + i, i, Lorem);
Products.Add(product);
}
}
public abstract object Parse();
public abstract object ParseBig();
public abstract string Render();
public abstract string ParseAndRender();
}
}