Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 56 additions & 1 deletion APSIM.POStats.Portal/Pages/Index.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@
{
<table class="stats-table">
@{
List<ApsimFileComparison> files = PullRequestFunctions.GetFileComparisons(Model.PullRequest);
List<ApsimFileComparison> files = PullRequestFunctions.GetFileStats(Model.PullRequest);
if (Model.OnlyShowChangedStats)
PullRequestFunctions.RemoveSame(files);
}
Expand Down Expand Up @@ -211,6 +211,61 @@
}
}
</table>
<table class="stats-table">
@foreach (var file in PullRequestFunctions.GetFileComparisons(Model.PullRequest))
{
<tr></tr>
<tr>
<td class="stats-table-heading" colspan="18">
<b>@Html.Raw(IndexModel.EmitFileName(file))</b>
</td>
</tr>
@foreach (var table in file.Tables)
{
<tr>
<td class=".stats-variablename">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td class="stats-table-heading" colspan="2"><i>@Html.Raw(IndexModel.EmitTableName(@table))</i></td>
<td class="stats-heading">&nbsp;&nbsp;</td>
<td class="stats-heading" colspan="3">n</td>
<td class="stats-heading">&nbsp;&nbsp;</td>
<td class="stats-heading" colspan="3">RMSE</td>
<td class="stats-heading">&nbsp;&nbsp;</td>
<td class="stats-heading" colspan="3">NSE</td>
<td class="stats-heading">&nbsp;&nbsp;</td>
<td class="stats-heading" colspan="3">RSR</td>
</tr>

@foreach (var variable in table.VariableComparisons)
{
<tr>
<td class="stats-variablename">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td class="stats-variablename">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td class="stats-variablename">@Html.Raw(IndexModel.EmitVariableName(@variable))</td>
<td class="stats-cell">&nbsp;&nbsp;</td>

<td class="stats-cell">&nbsp;@Html.Raw(IndexModel.EmitNumber(@variable.CurrentN, isAccepted: false))</td>
<td class="stats-cell">&nbsp;@Html.Raw(IndexModel.EmitNumber(@variable.AcceptedN, isAccepted: true))</td>
<td class="stats-tick">@Html.Raw(IndexModel.EmitTickCross(variable.NStatus))</td>
<td class="stats-cell">&nbsp;&nbsp;</td>

<td class="stats-cell">&nbsp;@Html.Raw(IndexModel.EmitNumber(variable.CurrentRMSE, 0, 6, isAccepted: false))</td>
<td class="stats-cell">&nbsp;@Html.Raw(IndexModel.EmitNumber(variable.AcceptedRMSE, 0, 6, isAccepted: true))</td>
<td class="stats-tick">@Html.Raw(IndexModel.EmitTickCross(variable.RMSEStatus))</td>
<td class="stats-cell">&nbsp;&nbsp;</td>

<td class="stats-cell">&nbsp;@Html.Raw(IndexModel.EmitNumber(@variable.CurrentNSE, 3, 0, isAccepted: false))</td>
<td class="stats-cell">&nbsp;@Html.Raw(IndexModel.EmitNumber(@variable.AcceptedNSE, 3, 0, isAccepted: true))</td>
<td class="stats-tick">@Html.Raw(IndexModel.EmitTickCross(variable.NSEStatus))@VariableFunctions.NSERating(variable.CurrentNSE)</td>
<td class="stats-cell">&nbsp;&nbsp;</td>

<td class="stats-cell">&nbsp;@Html.Raw(IndexModel.EmitNumber(@variable.CurrentRSR, 3, 0, isAccepted: false))</td>
<td class="stats-cell">&nbsp;@Html.Raw(IndexModel.EmitNumber(@variable.AcceptedRSR, 3, 0, isAccepted: true))</td>
<td class="stats-tick">@Html.Raw(IndexModel.EmitTickCross(variable.RSRStatus))@VariableFunctions.RSRRating(variable.CurrentRSR)</td>
</tr>
}
}
}
</table>
}
else
{
Expand Down
9 changes: 9 additions & 0 deletions APSIM.POStats.Shared/Collector.cs
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,15 @@ private static List<Table> GetTablesFromFile(string apsimxFileName)
if (reader.HasRows)
{
reader.Read();

bool hasComparisonColumn = false;
foreach (DataRow row in reader.GetSchemaTable().Rows)
if (row["ColumnName"].ToString() == "comparison")
hasComparisonColumn = true;

if (hasComparisonColumn)
newTable.Comparison = reader["comparison"].ToString();

foreach(string field in fields)
{
string match = reader[field].ToString();
Expand Down
1 change: 1 addition & 0 deletions APSIM.POStats.Shared/Models/Table.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ public class Table
{
public int Id { get; set; }
public string Name { get; set; }
public string Comparison { get; set; }
public virtual List<Variable> Variables { get; set; }

[JsonIgnore]
Expand Down
30 changes: 28 additions & 2 deletions APSIM.POStats.Shared/PullRequestFunctions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public static VariableComparison.Status GetStatus(PullRequestDetails pullRequest
{
bool allBetterOrSame = true;
bool allSame = true;
foreach (var file in GetFileComparisons(pullRequest))
foreach (var file in GetFileStats(pullRequest))
{
if (file.Status != ApsimFileComparison.StatusType.NoChange)
return VariableComparison.Status.Different;
Expand All @@ -41,7 +41,7 @@ public static VariableComparison.Status GetStatus(PullRequestDetails pullRequest

/// <summary>Get a list of all files for a pull request.</summary>
/// <param name="pullRequest">The pull request.</param>
public static List<ApsimFileComparison> GetFileComparisons(PullRequestDetails pullRequest)
public static List<ApsimFileComparison> GetFileStats(PullRequestDetails pullRequest)
{
var files = new List<ApsimFileComparison>();
foreach (ApsimFile currentFile in pullRequest.Files)
Expand All @@ -61,6 +61,32 @@ public static List<ApsimFileComparison> GetFileComparisons(PullRequestDetails pu
return files.OrderBy(f => f.Name).ToList();
}

/// <summary>Get a list of all files for a pull request.</summary>
/// <param name="pullRequest">The pull request.</param>
public static List<ApsimFileComparison> GetFileComparisons(PullRequestDetails pullRequest)
{
List<ApsimFileComparison> files = new List<ApsimFileComparison>();
foreach (ApsimFile file in pullRequest.Files)
{
List<string> comparisonFiles = new List<string>();
foreach (Table table in file.Tables)
{
if (!string.IsNullOrEmpty(table.Comparison))
{
if (comparisonFiles.Contains(table.Comparison))
comparisonFiles.Add(table.Comparison);
}
}
foreach (string comparisonFile in comparisonFiles)
{
ApsimFile otherFile = pullRequest.Files.Find(f => f.Name == comparisonFile);
files.Add(new ApsimFileComparison(file, otherFile));
}
}

return files.OrderBy(f => f.Name).ToList();
}

/// <summary>
/// Remove all files, tables and variables that are the same as the accepted ones.
/// </summary>
Expand Down
14 changes: 7 additions & 7 deletions APSIM.POStats.Tests/ComparisonTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public void FileStatusWorks()
AcceptedPullRequest = acceptedPullRequest
};

var files = PullRequestFunctions.GetFileComparisons(currentPullRequest);
var files = PullRequestFunctions.GetFileStats(currentPullRequest);
Assert.That(files.Count(), Is.EqualTo(3));

Assert.That(files.First(f => f.Name == "file1").Status, Is.EqualTo(ApsimFileComparison.StatusType.Missing));
Expand Down Expand Up @@ -75,7 +75,7 @@ public void TableStatusWorks()
AcceptedPullRequest = acceptedPullRequest
};

var files = PullRequestFunctions.GetFileComparisons(currentPullRequest);
var files = PullRequestFunctions.GetFileStats(currentPullRequest);
var tables = files.First().Tables;
Assert.That(tables.Count(), Is.EqualTo(3));

Expand Down Expand Up @@ -104,7 +104,7 @@ public void TableStatusWorksWithNoAccepted()
},
};

var files = PullRequestFunctions.GetFileComparisons(currentPullRequest);
var files = PullRequestFunctions.GetFileStats(currentPullRequest);
var tables = files.First().Tables;
Assert.That(tables.Count(), Is.EqualTo(2));

Expand Down Expand Up @@ -190,7 +190,7 @@ public void VariableStatusWork()
AcceptedPullRequest = acceptedPullRequest
};

var fileComparisons = PullRequestFunctions.GetFileComparisons(currentPullRequest);
var fileComparisons = PullRequestFunctions.GetFileStats(currentPullRequest);
var table = fileComparisons.First().Tables.First();
var variables = table.VariableComparisons;

Expand Down Expand Up @@ -251,7 +251,7 @@ public void VariableStatusWorksWithNoAccepted()
},
};

var file = PullRequestFunctions.GetFileComparisons(currentPullRequest);
var file = PullRequestFunctions.GetFileStats(currentPullRequest);
var table = file.First().Tables.First();
var variables = table.VariableComparisons;

Expand Down Expand Up @@ -457,7 +457,7 @@ public void EnsureOnlyShowChangedStatsWorks()
AcceptedPullRequest = acceptedPullRequest
};

var file = PullRequestFunctions.GetFileComparisons(currentPullRequest);
var file = PullRequestFunctions.GetFileStats(currentPullRequest);
var table = file.First().Tables.First();
var variables = table.VariableComparisons;

Expand Down Expand Up @@ -556,7 +556,7 @@ public void MissingTableDetected()
AcceptedPullRequest = acceptedPullRequest
};

var files = PullRequestFunctions.GetFileComparisons(currentPullRequest);
var files = PullRequestFunctions.GetFileStats(currentPullRequest);
var tables = files.First().Tables;
Assert.That(tables.Count(), Is.EqualTo(2));

Expand Down
Loading