generated from creek-service/single-module-template
-
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
33 changed files
with
1,350 additions
and
364 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,9 +25,7 @@ against the underlying [<i class="fab fa-fw fa-github"/> GitHub Repo](http | |
<script src="https://cdn.jsdelivr.net/npm/[email protected]" type="text/javascript"></script> | ||
|
||
<script> | ||
const implData = | ||
IMPLEMENTATIONS_JSON | ||
; | ||
const implData = {% include implementations.json %}; | ||
|
||
new simpleDatatables.DataTable("#implsTable", { | ||
paging: false, | ||
|
@@ -40,7 +38,7 @@ against the underlying [<i class="fab fa-fw fa-github"/> GitHub Repo](http | |
"Licence", | ||
"Supported Schema Versions", | ||
], | ||
"data": implData.map(row => [ | ||
"data": implData.filter(row => row.shortName !== "Jackson").map(row => [ | ||
"<a href='" + row.url + "'>" + row.longName + "</a>", | ||
row.shortName, | ||
row.language, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,15 +8,24 @@ toc: true | |
classes: wide | ||
--- | ||
|
||
## Test setup | ||
## Introduction | ||
|
||
Each validator implementation is run through a suite a functional tests. | ||
The purpose of this test is to determine how functionally complete each validator implementation is. | ||
|
||
Each implementation is run through a suite a functional tests. | ||
The tests cover almost every aspect of the different drafts of the JSON Schema specification. | ||
The tests cover both positive cases, where the validation should succeed, and negative cases, where validation should fail. | ||
The tests cover both _required_ features and those deemed _optional_ by the specifications. | ||
|
||
The tests are curated by the JSON community and are available [<i class="fab fa-fw fa-github"/> on GitHub][JSON-Schema-Test-Suite]{: .btn .btn--success}{:target="_blank"}. | ||
|
||
**Note:** | ||
The [Bowtie Project <i class="fas fa-external-link-alt"></i>][Bowtie]{:target="_blank"} aims to provide similar feature | ||
comparison for _all_ validator implementations. | ||
At the time of writing it does not cover all JVM implementations and does not cover optional schema features. | ||
Though, these are being worked on. Ultimately, this project should replace this comparison. | ||
{: .notice--warning} | ||
|
||
## Results | ||
|
||
For each schema specification an implementation supports, the number of test cases that pass and fail is tracked, | ||
|
@@ -51,6 +60,13 @@ Each populated cell also contains a **score**, indicating the functional complet | |
The **score** weights test results of _required_ features at triple _optional_ features, meaning 75% of the score is reserved for _required_ features, | ||
whereas _optional_ features only account for a maximum 25% of the score. | ||
|
||
### Detailed results | ||
|
||
Below is a more details set of results for each specification draft an implementation supports. | ||
Each table details the number of test cases that pass and fail for each test file in the JSON schema test suite. | ||
|
||
{% include per-draft.md %} | ||
|
||
[//]: # (Chart scripts: https://www.chartjs.org/docs/latest/) | ||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> | ||
|
||
|
@@ -59,13 +75,11 @@ whereas _optional_ features only account for a maximum 25% of the score. | |
<script src="https://cdn.jsdelivr.net/npm/[email protected]" type="text/javascript"></script> | ||
|
||
<script> | ||
const implData = | ||
IMPLEMENTATIONS_JSON | ||
; | ||
const implData = {% include implementations.json %}; | ||
|
||
const summaryData = | ||
FUNCTIONAL_SUMMARY_JSON | ||
; | ||
const summaryData = {% include functional-summary.json %}; | ||
|
||
let filteredRows = summaryData.rows.filter(row => row[0] !== "Jackson"); | ||
|
||
function createRow(row){ | ||
function formatResult(result){ | ||
|
@@ -92,19 +106,19 @@ whereas _optional_ features only account for a maximum 25% of the score. | |
searchable: false, | ||
data: { | ||
"headings": summaryData.headings.map(h => h + '\u00A0'.repeat(Math.max(0, 25 - h.length))), | ||
"data": summaryData.rows.map(row => createRow(row)) | ||
"data": filteredRows.map(row => createRow(row)) | ||
} | ||
}); | ||
|
||
new Chart(document.getElementById('summaryChart'), | ||
{ | ||
type: 'bar', | ||
data: { | ||
labels: summaryData.rows.map(row => row[0]), | ||
labels: filteredRows.map(row => row[0]), | ||
datasets: [{ | ||
data: summaryData.rows.map(row => row[1].score), | ||
borderColor: summaryData.rows.map(row => implData.find(impl => impl.shortName === row[0]).color), | ||
backgroundColor: summaryData.rows.map(row => implData.find(impl => impl.shortName === row[0]).color.replace('rgb', 'rgba').replace(')', ',0.2)')), | ||
data: filteredRows.map(row => row[1].score), | ||
borderColor: filteredRows.map(row => implData.find(impl => impl.shortName === row[0]).color), | ||
backgroundColor: filteredRows.map(row => implData.find(impl => impl.shortName === row[0]).color.replace('rgb', 'rgba').replace(')', ',0.2)')), | ||
borderWidth: 1 | ||
}] | ||
}, | ||
|
@@ -130,10 +144,5 @@ whereas _optional_ features only account for a maximum 25% of the score. | |
</script> | ||
|
||
[JSON-Schema-Test-Suite]: https://github.com/json-schema-org/JSON-Schema-Test-Suite | ||
[Bowtie]: https://github.com/bowtie-json-schema/bowtie | ||
|
||
### Detailed results | ||
|
||
Below is a more details set of results for each specification draft an implementation supports. | ||
Each table details the number of test cases that pass and fail for each test file in the JSON schema test suite. | ||
|
||
[//]: # (Do not add content below this line, or delete the line following this comment, as the build appends data to this file) |
Oops, something went wrong.