diff --git a/app/styles/editor/verifier/verifier-view.sass b/app/styles/editor/verifier/verifier-view.sass index 4eb18abd9..ecc9c5660 100644 --- a/app/styles/editor/verifier/verifier-view.sass +++ b/app/styles/editor/verifier/verifier-view.sass @@ -19,3 +19,6 @@ .test-failed color: red + + .lineUnder + border-bottom: 1px solid #ccc \ No newline at end of file diff --git a/app/templates/editor/verifier/verifier-view.jade b/app/templates/editor/verifier/verifier-view.jade index ff9c014e5..39efc524c 100644 --- a/app/templates/editor/verifier/verifier-view.jade +++ b/app/templates/editor/verifier/verifier-view.jade @@ -16,9 +16,18 @@ block content 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 + .row.lineUnder each campaignInfo, campaign in view.levelsByCampaign .form-group.campaign-mix - var campaignID = "campaign-" + campaign + "-checkbox"; diff --git a/app/views/editor/verifier/VerifierTest.coffee b/app/views/editor/verifier/VerifierTest.coffee index 0826cad0c..8ad49720a 100644 --- a/app/views/editor/verifier/VerifierTest.coffee +++ b/app/views/editor/verifier/VerifierTest.coffee @@ -7,7 +7,7 @@ LevelLoader = require 'lib/LevelLoader' utils = require 'core/utils' module.exports = class VerifierTest extends CocoClass - constructor: (@levelID, @updateCallback, @supermodel, @language) -> + constructor: (@levelID, @updateCallback, @supermodel, @language, @options) -> super() # TODO: turn this into a Subview # TODO: listen to the progress report from Angel to show a simulation progress bar (maybe even out of the number of frames we actually know it'll take) @@ -91,7 +91,7 @@ module.exports = class VerifierTest extends CocoClass isSuccessful: () -> return false unless @solution? - return false unless @frames == @solution.frameCount + return false unless @frames == @solution.frameCount or @options.dontCareAboutFrames if @goals and @solution.goals for k of @goals continue if not @solution.goals[k] diff --git a/app/views/editor/verifier/VerifierView.coffee b/app/views/editor/verifier/VerifierView.coffee index 80dbfb019..b03c9bb30 100644 --- a/app/views/editor/verifier/VerifierView.coffee +++ b/app/views/editor/verifier/VerifierView.coffee @@ -23,6 +23,10 @@ module.exports = class VerifierView extends RootView @problem = 0 @testCount = 0 + defaultCores = 2 + @cores = Math.max(window.navigator.hardwareConcurrency, defaultCores) + @careAboutFrames = true + if @levelID @levelIDs = [@levelID] @testLanguages = ['python', 'javascript', 'java', 'lua', 'coffeescript'] @@ -56,6 +60,8 @@ module.exports = class VerifierView extends RootView onClickGoButton: (e) -> @filterCampaigns() @levelIDs = [] + @careAboutFrames = @$("#careAboutFrames").is(':checked') + @cores = @$("#cores").val()|0 for campaign, campaignInfo of @levelsByCampaign if @$("#campaign-#{campaign}-checkbox").is(':checked') for level in campaignInfo.levels @@ -87,8 +93,6 @@ module.exports = class VerifierView extends RootView @render() onTestLevelsLoaded: -> - defaultCores = 2 - cores = Math.max(window.navigator.hardwareConcurrency, defaultCores) @linksQueryString = window.location.search #supermodel = if @levelID then @supermodel else undefined @@ -102,7 +106,8 @@ module.exports = class VerifierView extends RootView @tasksList.push level: levelID, language: codeLanguage @testCount = @tasksList.length - chunks = _.groupBy @tasksList, (v,i) -> i%cores + console.log("Starting in", @cores, "cores...") + chunks = _.groupBy @tasksList, (v,i) => i%@cores supermodels = [@supermodel] _.forEach chunks, (chunk, i) => @@ -128,7 +133,7 @@ module.exports = class VerifierView extends RootView ++@problem next() - , chunkSupermodel, task.language + , chunkSupermodel, task.language, {dontCareAboutFrames: not @careAboutFrames} @tests.unshift test @render() , => @render()