extends /templates/base-flat block content .container div.row.verifier-row div.col-sm-3 p.alert.alert-success | Passed: #{view.passed} div.col-sm-3 p.alert.alert-warning | Test Problem: #{view.problem} div.col-sm-3 p.alert.alert-danger | Failed: #{view.failed} div.col-sm-3 p.alert.alert-info | To Run: #{view.testCount - view.passed - view.problem - view.failed} .form.form-inline .row.lineUnder .form-group.campaign-mix input(id="careAboutFrames", type="checkbox", checked=!!view.careAboutFrames, disabled=!!view.tests) label(for="careAboutFrames") Check frame counts .form-group.campaign-mix label(for="cores") Threads: input(id="cores", type="number", min="1", max="16", value=view.cores, disabled=!!view.tests) if view.levelsByCampaign .form.form-inline .row.lineUnder each campaignInfo, campaign in view.levelsByCampaign .form-group.campaign-mix - var campaignID = "campaign-" + campaign + "-checkbox"; input(id=campaignID, type="checkbox", checked=campaignInfo.checked, disabled=!!view.tests) label(for=campaignID)= campaign + ': ' + campaignInfo.levels.length .row each codeLanguage in view.codeLanguages .form-group.code-language-mix - var codeLanguageID = "code-language-" + codeLanguage.id + "-checkbox"; input(id=codeLanguageID, type="checkbox", checked=codeLanguage.checked, disabled=!!view.tests) label(for=codeLanguageID)= codeLanguage.id .pull-right button.btn.btn-primary#go-button(disabled=!!view.tests) Start Tests if view.levelsToLoad && !view.tests .progress .progress-bar.progress-bar-success(role="progressbar" style="width: #{100*(1 - view.levelsToLoad/view.initialLevelsToLoad)}%") if view.tests if view.levelIDs .progress .progress-bar.progress-bar-success(role="progressbar" style="width: #{100*view.passed/view.testCount}%") .progress-bar.progress-bar-warning(role="progressbar" style="width: #{100*view.problem/view.testCount}%") .progress-bar.progress-bar-danger(role="progressbar" style="width: #{100*view.failed/view.testCount}%") each test, id in view.tests - if (test.state == 'no-solution') - continue; if test.level .pull-right - var last = test.level.get('slug') + view.linksQueryString a.btn.btn-primary(href="/editor/verifier/" + last) Focus a.btn.btn-success(href="/play/level/" + last) Play a.btn.btn-warning(href="/editor/level/" + last) Edit a.btn.btn-default(data-target='#verifier-test-' + id, data-toggle="collapse") Toggle if !test.goals h2.test-running= test.level.get('name') small= ' in ' + test.language + '' else if test.isSuccessful() h2.test-success= test.level.get('name') small= ' in ' + test.language + '' else h2.test-failed= test.level.get('name') small= ' in ' + test.language + '' div.row(class=(test.isSuccessful() && id > 1 ? 'collapse' : 'collapse in'), id='verifier-test-' + id) div.col-xs-8 if test.solution pre.solution #{test.solution.source} else h4 Error Loading Test pre #{test.error} div.col-xs-4.well if test.goals if test.frames == test.solution.frameCount div.test-success ✓ Frames: #{test.frames} else div.test-failed ✘ Frames: #{test.frames} vs #{test.solution.frameCount} each v,k in test.goals || [] if !test.solution.goals div.test-running ? #{k} (#{v.status}) else if v.status == test.solution.goals[k] div.test-success ✓ #{k} (#{v.status}) else div.test-failed ✘ #{k} (#{v.status} vs #{test.solution.goals[k]}) else h3 Pending.... if test.error pre.test-faile #{test.error} if test.userCodeProblems.length h4.test-failed User Code Problems pre.test-failed #{JSON.stringify(test.userCodeProblems, null, 2)} if test.simulationFrameRate if test.simulationFrameRate > 90 div.test-success ✓ #{test.simulationFrameRate.toFixed(1)} FPS else if test.simulationFrameRate > 30 div.test-running ~ #{test.simulationFrameRate.toFixed(1)} FPS else div.test-failed ✘ #{test.simulationFrameRate.toFixed(1)} FPS else h1 Loading Level... // TODO: show last frame hash