Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
TestResultServerImage.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System;
4 using System.Collections.Generic;
5 using System.Text;
6 using SiliconStudio.Paradox.Graphics.Regression;
7 
8 namespace SiliconStudio.ImageComparerService
9 {
11  {
13 
14  public Dictionary<string, List<TestResultServerImage>> Images = new Dictionary<string, List<TestResultServerImage>>();
15  }
16 
18  {
20  {
21  Client = client;
22  ClientImage = new TestResultImage();
23  }
24 
25  // Results
26  public string GoldPath;
27  public string OutputPath;
28  public string JsonPath;
29 
30  public string GoldFileName;
31  public string ResultFileName;
32  public string DiffFileName;
33  public string DiffNormFileName;
34  public float MeanSquareError = -1.0f;
35 
36  public int FrameIndex;
37 
40 
41  public string GetFileName()
42  {
43  return GetBaseFileName() + ".png";
44  }
45 
46  public string GetDiffFileName()
47  {
48  return GetBaseFileName() + "_diff.png";
49  }
50 
51  public string GetNormDiffFileName()
52  {
53  return GetBaseFileName() + "_normDiff.png";
54  }
55 
56  public string GetBaseFileName()
57  {
58  return string.Format("{0}_v{1}_f{2}", ClientImage.TestName, ClientImage.CurrentVersion, ClientImage.Frame);
59  }
60 
61  public string GetJsonFileName()
62  {
63  return string.Format("{0}_{1}_{2}{3}.json", Client.Connection.Platform, Client.Connection.DeviceName, Client.Connection.Serial,
64  (Client.Connection.BuildNumber != -1) ? "_build" + Client.Connection.BuildNumber.ToString("D4") : string.Empty);
65  }
66 
67  public string GetGoldDirectory()
68  {
69  return string.Format("gold\\{0}_{1}\\", Client.Connection.Platform, Client.Connection.DeviceName);
70  }
71 
72  public string GetOutputDirectory()
73  {
74  // Build server format?
75  if (Client.Connection.BuildNumber != -1)
76  return string.Format("build\\{0}_{1}_{2}\\{3}\\", Client.Connection.Platform, Client.Connection.DeviceName, Client.Connection.Serial, Client.Connection.BuildNumber);
77 
78  // User format
79  return string.Format("user\\{0}_{1}_{2}\\", Client.Connection.Platform, Client.Connection.DeviceName, Client.Connection.Serial);
80  }
81 
82  public string GetJsonString()
83  {
84  var stringBuilder = new StringBuilder();
85  stringBuilder.Append('{');
86 
87  stringBuilder.Append("\"TestName\":\"");
88  stringBuilder.Append(ClientImage.TestName);
89  stringBuilder.Append('"');
90  stringBuilder.Append(',');
91  stringBuilder.Append("\"BranchName\":\"");
92  stringBuilder.Append(Client.Connection.BranchName ?? "");
93  stringBuilder.Append('"');
94  stringBuilder.Append(',');
95  stringBuilder.Append("\"Platform\":\"");
96  stringBuilder.Append(Client.Connection.Platform);
97  stringBuilder.Append('"');
98  stringBuilder.Append(',');
99  stringBuilder.Append("\"Device\":\"");
100  stringBuilder.Append(Client.Connection.DeviceName);
101  stringBuilder.Append('"');
102  stringBuilder.Append(',');
103  stringBuilder.Append("\"Serial\":\"");
104  stringBuilder.Append(Client.Connection.Serial);
105  stringBuilder.Append('"');
106  stringBuilder.Append(',');
107  stringBuilder.Append("\"FrameIndex\":");
108  stringBuilder.Append(FrameIndex);
109  stringBuilder.Append(',');
110  stringBuilder.Append("\"BuildNumber\":");
111  stringBuilder.Append(Client.Connection.BuildNumber);
112  stringBuilder.Append(',');
113  stringBuilder.Append("\"ComputedImage\":\"");
114  stringBuilder.Append(GetFileName());
115  stringBuilder.Append('"');
116  stringBuilder.Append(',');
117  stringBuilder.Append("\"Error\":");
118  stringBuilder.Append(MeanSquareError);
119  if (MeanSquareError != 0.0)
120  {
121  stringBuilder.Append(',');
122  stringBuilder.Append("\"DiffImage\":\"");
123  stringBuilder.Append(GetDiffFileName());
124  stringBuilder.Append('"');
125  stringBuilder.Append(',');
126  stringBuilder.Append("\"NormDiffImage\":\"");
127  stringBuilder.Append(GetNormDiffFileName());
128  stringBuilder.Append('"');
129  }
130 
131  stringBuilder.Append('}');
132  return stringBuilder.ToString();
133  }
134  }
135 }