diff --git a/.github/workflows/NightlyBMDB_CLI.yml b/.github/workflows/NightlyBMDB_CLI.yml index c8a84c2ef2..4487a13d4b 100644 --- a/.github/workflows/NightlyBMDB_CLI.yml +++ b/.github/workflows/NightlyBMDB_CLI.yml @@ -1,4 +1,4 @@ -name: Nightly CLI Execution Tests (Published + BMDB) +name: Nightly CLI Execution Tests (BMDB) on: schedule: - cron: "0 7 * * *" @@ -116,12 +116,13 @@ jobs: - name: Setup tmate session 3 uses: mxschmitt/action-tmate@v3 if: ${{ failure() }} - published: + + bmdb: runs-on: ubuntu-20.04 needs: build strategy: matrix: - sets: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"] + sets: [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19" ] steps: - name: Create Docker Image Dir run: mkdir /tmp/docker @@ -134,45 +135,141 @@ jobs: - name: Load Downloaded Docker Image run: docker load --input /tmp/docker/$(ls /tmp/docker) - + # Get files from BMDB - name: Checkout Input Files uses: actions/checkout@v4 with: - repository: virtualcell/vcdb + repository: sys-bio/temp-biomodels - name: Prepare sub directory run: | - SOURCE_DIR="$GITHUB_WORKSPACE/published/biomodel/omex/sbml" + SOURCE_DIR="$GITHUB_WORKSPACE/omex_files" TARGET_DIR="$GITHUB_WORKSPACE/set_${{ matrix.sets }}" MOD_VALUE=${{ matrix.sets }} - file_index=0 # make target dir mkdir $TARGET_DIR # loop through files in directory, increment indexing and separating files + + echo "Extracting tests" + for file in $SOURCE_DIR/*; do - file_index=$((file_index+1)) - if [ $((file_index%${{ strategy.job-total }})) -eq $((MOD_VALUE + 0)) ]; then + # Is the file of the correct form? + file_name=$(basename $file) + if ! [[ $file_name =~ ^BIOMD[0-9]+\.omex$ ]]; then + echo "Input is invalid. Expecting 'BIOMD##########.omex format, got '${file_name}'." + continue + fi + + number=$(echo "$file_name" | sed -n 's/^BIOMD\([0-9]\+\)\.omex$/\1/p' | sed 's/^0*//') + + # TODO: remove later - if number is greater than MAX_TEST_NUMBER or less than MIN_TEST_NUMBER then continue + MIN_TEST_NUMBER=0 + MAX_TEST_NUMBER=2000 + if [ $number -lt $MIN_TEST_NUMBER ]; then + echo "Skipping ${file_name}" + continue + fi + if [ $number -gt $MAX_TEST_NUMBER ]; then + echo "Skipping ${file_name}" + continue + fi + case $number in + 235|255|595|711|1008|1013|1022|1025|1030|1035|1042) + echo "Skipping ${file_name} - too slow or otherwise misbehaved" + continue + ;; + esac + + if [ $((number % ${{ strategy.job-total }})) -eq $((MOD_VALUE + 0)) ]; then + echo "Accepting ${file_name}" cp ${file} $TARGET_DIR/ fi done - + + - name: Install JQ + run: sudo apt update && sudo apt install jq -y + # Do the execution - name: Begin Execution #$(docker image ls | grep "" | awk '{print $3;}') to get image id - run: docker run -v $GITHUB_WORKSPACE/set_${{ matrix.sets }}:/root $(docker image ls | grep "" | awk '{print $3;}') execute -d -i "/root" -o "/root/output" --writeLogFiles # grabs image and runs - + run: | + # Prepare files + set +e + echo "[]" > ${{ github.workspace }}/total_exec_summary.json + touch ${{ github.workspace }}/total_exec_summary.ndjson + echo "[]" > ${{ github.workspace }}/full_tracer.json + # The /* goes on the outside, otherwise bash just interprets a string! + for file in "$GITHUB_WORKSPACE/set_${{ matrix.sets }}"/*; do + if [ -f "$file" ]; then + extensionless_name="${file%.*}" + base_name="$(basename ${file})" + base_extless_name="$(basename ${extensionless_name})" + mkdir "${extensionless_name}_output" + + sim_input="/root/${base_name}" + sim_output="/root/${base_extless_name}_output" + echo -n "Running \"${file}\" in output folder \"${base_extless_name}_output\"..." + vcell_result=$(docker run -v $GITHUB_WORKSPACE/set_${{ matrix.sets }}:/root $(docker image ls | grep "" | awk '{print $3;}') execute-omex -d -i ${sim_input} -o ${sim_output} --timeout_ms=300000) + echo "Done!" + # Grab Summary + echo -n "Obtaining Summary..." + if [ -f "${GITHUB_WORKSPACE}/set_${{ matrix.sets }}/${base_extless_name}_output/exec_summary.json" ] + then + # Append to master summary in github workspace + jq '. + [inputs]' ${{ github.workspace }}/total_exec_summary.json $(find $GITHUB_WORKSPACE/set_${{ matrix.sets }}/${base_extless_name}_output -name exec_summary.json) > temp.json + mv temp.json ${{ github.workspace }}/total_exec_summary.json + # note that the exec_summary.json file is already only a single line of json text, so simple concatenation is fine + find $GITHUB_WORKSPACE/set_${{ matrix.sets }}/${base_extless_name}_output -name exec_summary.json -exec cat {} + | sort > temp.ndjson + cat temp.ndjson >> ${{ github.workspace }}/total_exec_summary.ndjson + echo "Done!" + else + echo "No summary found in set $GITHUB_WORKSPACE/set_${{ matrix.sets }}" + fi + + # Check for individual Failure (a.k.a. if we failed early) + echo -n "Obtaining Execution Result..." + status=$(cat "${GITHUB_WORKSPACE}/set_${{ matrix.sets }}/${base_extless_name}_output/exec_summary.json" | jq -r '.status') + echo "${status}" + # Note: `cat`ing "$vcell_result" will be the runting logging! + if [[ "${status}" == "FAILED" ]]; then + # Copy error log to github workspace + echo -n "Copying Failure Report..." + echo "${base_extless_name}" >> $GITHUB_WORKSPACE/set_${{ matrix.sets }}/${base_extless_name}_output/errorLog.txt + touch ${{ github.workspace }}/errors.report + cat $GITHUB_WORKSPACE/set_${{ matrix.sets }}/${base_extless_name}_output/errorLog.txt >> ${{ github.workspace }}/errors.report + echo "Done!" + fi + + # Grab Trace + # Check for individual Success + echo -n "Obtaining Execution Tracer Logs..." + if [ $(find $GITHUB_WORKSPACE/set_${{ matrix.sets }}/${base_extless_name}_output -name tracer.json | wc -l) -ne 0 ] + then + echo -n "Copying Tracer Logs..." + # Append to master trace in github workspace + jq '. + inputs' ${{ github.workspace }}/full_tracer.json $(find $GITHUB_WORKSPACE/set_${{ matrix.sets }}/${base_extless_name}_output -name tracer.json) > temp_2.json + mv temp_2.json ${{ github.workspace }}/full_tracer.json + echo "Done!" + else + echo "No trace found in set $GITHUB_WORKSPACE/set_${{ matrix.sets }}" + fi + fi + echo "Completed processing of \"${file}\"!" + echo "\n\n-----------------------------------------------------------------------------------------------\n\n" + done + + - name: Check For Success run: | - errorSearch=$(find $GITHUB_WORKSPACE/set_${{ matrix.sets }} -name errorLog.txt) - if [ $(find $GITHUB_WORKSPACE/set_${{ matrix.sets }} -name errorLog.txt | wc -l) -eq 0 ] - then + # If the error file exists, then we have failures to report and upload; else, we can just end here; the next job will process results + if [ $(find ${{ github.workspace }} -name errors.report | wc -l) -eq 0 ] + then exit 0 - else - # Copy error log to github workspace - cp $(find $GITHUB_WORKSPACE/set_${{ matrix.sets }} -name errorLog.txt) ${{ github.workspace }}/errors.report fi + echo "Models that failed:" + cat ${{ github.workspace }}/errors.report - name: Upload failures uses: actions/upload-artifact@v3 @@ -180,21 +277,37 @@ jobs: name: set_${{ matrix.sets }}.report path: ${{ github.workspace }}/errors.report + - name: Upload summary as json + uses: actions/upload-artifact@v3 + with: + name: set_${{ matrix.sets }}.summary + path: ${{ github.workspace }}/total_exec_summary.json + + - name: Upload summary as ndjson + uses: actions/upload-artifact@v3 + with: + name: set_${{ matrix.sets }}.summary_ndjson + path: ${{ github.workspace }}/total_exec_summary.ndjson + + - name: Upload tracer + uses: actions/upload-artifact@v3 + with: + name: set_${{ matrix.sets }}.tracer + path: ${{ github.workspace }}/full_tracer.json + # Report a Problem to Slack - name: Report Problem to Slack if: ${{ failure() }} - run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="Oops! The *Published Step* of set ${{ matrix.sets }} in Nightly **Execution** Testing Action on GitHub Failed ( ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} ). Go see what happened!" https://slack.com/api/chat.postMessage + run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="Oops! The *BMDB Step* of Nightly **Execution** (set ${{ matrix.sets }}) Testing Action on GitHub Failed ( ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} ). Go see what happened!" https://slack.com/api/chat.postMessage - name: Setup tmate session 3 uses: mxschmitt/action-tmate@v3 if: ${{ failure() }} - bmdb: + bmdb_results: runs-on: ubuntu-20.04 - needs: build - strategy: - matrix: - sets: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"] + needs: bmdb + steps: - name: Create Docker Image Dir run: mkdir /tmp/docker @@ -208,100 +321,63 @@ jobs: - name: Load Downloaded Docker Image run: docker load --input /tmp/docker/$(ls /tmp/docker) - # Get files from BMDB - - name: Checkout Input Files - uses: actions/checkout@v4 + - name: Gather Artifacts + uses: actions/download-artifact@v3 with: - repository: sys-bio/temp-biomodels + path: ${{ github.workspace }}/bmdb-results - - name: Prepare sub directory - run: | - SOURCE_DIR="$GITHUB_WORKSPACE/omex_files" - TARGET_DIR="$GITHUB_WORKSPACE/set_${{ matrix.sets }}" - MOD_VALUE=${{ matrix.sets }} - file_index=0 - - # make target dir - mkdir $TARGET_DIR - # loop through files in directory, increment indexing and separating files - for file in $SOURCE_DIR/*; do - file_index=$((file_index+1)) - if [[ $file == *1008* ]]; then - echo -n 'skipping ' - echo $file - continue - fi - if [ $((file_index%${{ strategy.job-total }})) -eq $((MOD_VALUE + 0)) ]; then - cp ${file} $TARGET_DIR/ - fi - done + - name: Install JQ + run: sudo apt update && sudo apt install jq -y - # Do the execution - - name: Begin Execution - #$(docker image ls | grep "" | awk '{print $3;}') to get image id - run: docker run -v $GITHUB_WORKSPACE/set_${{ matrix.sets }}:/root $(docker image ls | grep "" | awk '{print $3;}') execute -d -i "/root" -o "/root/output" --writeLogFiles # grabs image and runs - - - name: Check For Success - run: | - errorSearch=$(find $GITHUB_WORKSPACE/set_${{ matrix.sets }} -name errorLog.txt) - if [ $(find $GITHUB_WORKSPACE/set_${{ matrix.sets }} -name errorLog.txt | wc -l) -eq 0 ] - then - exit 0 - else - # Copy error log to github workspace - cp $(find $GITHUB_WORKSPACE/set_${{ matrix.sets }} -name errorLog.txt) ${{ github.workspace }}/errors.report - fi + - name: Combine .report artifacts into one file + run: cat $(find $GITHUB_WORKSPACE/bmdb-results -name 'errors.report') > $GITHUB_WORKSPACE/combined.txt - - name: Upload failures + - name: Combine .summary artifacts into one file + run: jq -s 'add | sort_by(.file_path)' $(find "$GITHUB_WORKSPACE/bmdb-results" -name 'total_exec_summary.json') > $GITHUB_WORKSPACE/summary.json + + - name: Combine all .summary_ndjson artifacts into one file + # note that the total_exec_summary.ndjson files are already line delimited json text, so simple concatenation is fine + run: find $GITHUB_WORKSPACE/bmdb-results -name total_exec_summary.ndjson -exec cat {} + | sort > $GITHUB_WORKSPACE/exec_summary.ndjson + + - name: Upload combined exec_summary.ndjson file uses: actions/upload-artifact@v3 with: - name: set_${{ matrix.sets }}.report - path: ${{ github.workspace }}/errors.report + path: ${{ github.workspace }}/exec_summary.ndjson + name: exec_summary.ndjson - # Report a Problem to Slack - - name: Report Problem to Slack - if: ${{ failure() }} - run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="Oops! The *BMDB Step* of Nightly **Execution** (set ${{ matrix.sets }}) Testing Action on GitHub Failed ( ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} ). Go see what happened!" https://slack.com/api/chat.postMessage + - name: Combine .summary artifacts into one file + run: jq -s 'add' $(find $GITHUB_WORKSPACE/bmdb-results -name 'full_tracer.json') > $GITHUB_WORKSPACE/tracer.json - - name: Setup tmate session 3 - uses: mxschmitt/action-tmate@v3 - if: ${{ failure() }} - - published_results: - runs-on: ubuntu-20.04 - needs: published + # run exec-report CLI command via docker to generate report using the exec_summary.ndjson file and the embedded test_cases.ndjson file + - name: Run Docker test-report command + run: docker run -v ${{ github.workspace }}:/root $(docker image ls | grep "" | awk '{print $3;}') test-report -c SYSBIO_BIOMD --exec-summaries /root/exec_summary.ndjson --report-md /root/report.md - steps: - - name: Gather Artifacts - uses: actions/download-artifact@v3 + - name: Upload generated report.md + uses: actions/upload-artifact@v3 with: - path: ${{ github.workspace }}/published-results + name: report.md + path: ${{ github.workspace }}/report.md - - name: Combine .report artifacts into one file - run: cat $(find $GITHUB_WORKSPACE/published-results -name 'errors.report') > $GITHUB_WORKSPACE/combined.txt - - - name: Post results to slack part 1 - run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="Here're the $(cat ${GITHUB_WORKSPACE}/combined.txt | wc -l) published models that didn't pass:" https://slack.com/api/chat.postMessage - - - name: Post results to slack part 2 - run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="$(cat ${GITHUB_WORKSPACE}/combined.txt)" https://slack.com/api/chat.postMessage - - - bmdb_results: - runs-on: ubuntu-20.04 - needs: bmdb - - steps: - - name: Gather Artifacts - uses: actions/download-artifact@v3 + - name: Upload complete, compiled summary + uses: actions/upload-artifact@v3 with: - path: ${{ github.workspace }}/bmdb-results + name: complete_summary.json + path: ${{ github.workspace }}/summary.json - - name: Combine .report artifacts into one file - run: cat $(find $GITHUB_WORKSPACE/bmdb-results -name 'errors.report') > $GITHUB_WORKSPACE/combined.txt + - name: Upload complete, compiled tracer + uses: actions/upload-artifact@v3 + with: + name: complete_tracer.json + path: ${{ github.workspace }}/tracer.json - name: Post results to slack part 1 run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="Here're the $(cat ${GITHUB_WORKSPACE}/combined.txt | wc -l) BMDB models that didn't pass:" https://slack.com/api/chat.postMessage - name: Post results to slack part 2 - run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="$(cat ${GITHUB_WORKSPACE}/combined.txt)" https://slack.com/api/chat.postMessage + run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="$(sort ${GITHUB_WORKSPACE}/combined.txt)" https://slack.com/api/chat.postMessage + + - name: Post results to slack part 3 (report.md from exec-report CLI command) + run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="$(cat ${GITHUB_WORKSPACE}/report.md)" https://slack.com/api/chat.postMessage + + - name: Post results to slack part 4 + run: curl -X POST -F token="${{ secrets.SLACK_BOT_TOKEN }}" -F channel=${{ secrets.SLACK_CHANNEL_VCELL_DEV_TOKEN }} -F text="To see detailed logs of the BMDB results, see - ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}. Go see what happened!" https://slack.com/api/chat.postMessage diff --git a/docker_run.sh b/docker_run.sh index b46dff546d..81f01d4e05 100755 --- a/docker_run.sh +++ b/docker_run.sh @@ -22,6 +22,11 @@ case "$rawCommand" in command="export-omex" shift ;; + "test-report") + echo 'test-report mode requested' + command="test-report" + shift + ;; "export-omex-batch") echo 'export-omex-batch mode requested' command="export-omex-batch" @@ -47,6 +52,11 @@ case "$rawCommand" in command="execute" shift ;; + "execute-omex") + echo 'special testing execution mode requested' + command="execute-omex" + shift + ;; "validate") echo 'validate mode requested' command="validate" diff --git a/vcell-cli/src/main/java/org/vcell/cli/CLIStandalone.java b/vcell-cli/src/main/java/org/vcell/cli/CLIStandalone.java index 05d2fc8e2e..fa923bd19f 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/CLIStandalone.java +++ b/vcell-cli/src/main/java/org/vcell/cli/CLIStandalone.java @@ -4,6 +4,7 @@ import org.vcell.cli.run.ExecuteCommand; import org.vcell.cli.run.ExecuteOmexCommand; import org.vcell.cli.sbml.ModelCommand; +import org.vcell.cli.testing.TestReportCommand; import org.vcell.cli.vcml.*; import org.apache.logging.log4j.LogManager; @@ -24,6 +25,7 @@ ImportOmexCommand.class, ImportOmexBatchCommand.class, ExecuteOmexCommand.class, + TestReportCommand.class, ExecuteCommand.class, VersionCommand.class, ModelCommand.class, diff --git a/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteCommand.java b/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteCommand.java index 9fda30e845..1026ac4cdb 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteCommand.java +++ b/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteCommand.java @@ -16,7 +16,7 @@ import java.util.concurrent.Callable; import java.util.Date; -@Command(name = "execute", description = "run .vcml or .omex files via Python API") +@Command(name = "execute", description = "run .vcml or .omex files.") public class ExecuteCommand implements Callable { private final static Logger logger = org.apache.logging.log4j.LogManager.getLogger(ExecuteCommand.class); @@ -39,6 +39,9 @@ public class ExecuteCommand implements Callable { @Option(names = "--keepFlushingLogs", defaultValue = "false") private boolean bKeepFlushingLogs = false; + @Option(names = "--guaranteeGoodReturnCode", defaultValue = "false", description = "Even on failure, return error code 0 for script purposes.") + private boolean bGuaranteeGoodReturnCode = false; + @Option(names = "--small-mesh", defaultValue = "false", description = "force spatial simulations to have a very small mesh to make execution faster") private boolean bSmallMeshOverride = false; @@ -100,7 +103,7 @@ public Integer call() { bKeepTempFiles, bExactMatchOnly, bEncapsulateOutput, EXECUTABLE_MAX_WALLCLOCK_MILLIS, help, bDebug, bQuiet ); - logger.trace(trace_args); + logger.debug(trace_args); logger.debug("Validating CLI arguments"); if (bDebug && bQuiet) { @@ -135,7 +138,7 @@ public Integer call() { return 0; } catch (Exception e) { ///TODO: Break apart into specific exceptions to maximize logging. org.apache.logging.log4j.LogManager.getLogger(this.getClass()).error(e.getMessage(), e); - return 1; + return bGuaranteeGoodReturnCode ? 0 : 1; } finally { logger.debug("Completed all execution"); } diff --git a/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteImpl.java b/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteImpl.java index 1774e4131d..ce4df84908 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteImpl.java +++ b/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteImpl.java @@ -135,7 +135,7 @@ public static void singleMode(File inputFile, File rootOutputDir, CLIRecordable logger.info("Preparing output directory..."); // we don't want to accidentally delete the input... - // if the output is a subset of the input file's housing directory, we shouldn't delete!! + // if the output directory is a subset of the input file's housing directory, we shouldn't delete!! if (!inputFile.getParentFile().getCanonicalPath().contains(adjustedOutputDir.getCanonicalPath())) RunUtils.removeAndMakeDirs(adjustedOutputDir); diff --git a/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteOmexCommand.java b/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteOmexCommand.java index 2b946e89bb..3b9a17716c 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteOmexCommand.java +++ b/vcell-cli/src/main/java/org/vcell/cli/run/ExecuteOmexCommand.java @@ -8,8 +8,8 @@ import org.vcell.cli.CLIPythonManager; import org.vcell.cli.CLIRecordable; import org.vcell.cli.CliTracer; -import org.vcell.cli.testsupport.OmexExecSummary; -import org.vcell.cli.testsupport.OmexTestingDatabase; +import org.vcell.sedml.testsupport.OmexExecSummary; +import org.vcell.sedml.testsupport.OmexTestingDatabase; import org.vcell.trace.Tracer; import org.vcell.util.FileUtils; import org.vcell.util.exe.Executable; @@ -63,6 +63,7 @@ public class ExecuteOmexCommand implements Callable { public Integer call() { CLIRecordable cliTracer = new CliTracer(); + long startTime_ms = System.currentTimeMillis(); try { if (bDebug && bQuiet) { System.err.println("cannot specify both debug and quiet, try --help for usage"); @@ -106,18 +107,19 @@ public Integer call() { FileUtils.copyDirectoryContents(tmpDir, outputFilePath, true, null); final OmexExecSummary omexExecSummary; if (Tracer.hasErrors()){ - omexExecSummary = OmexTestingDatabase.summarize(inputFilePath,(Exception)null,Tracer.getErrors()); + omexExecSummary = OmexTestingDatabase.summarize(inputFilePath,(Exception)null,Tracer.getErrors(), System.currentTimeMillis() - startTime_ms); } else { omexExecSummary = new OmexExecSummary(); omexExecSummary.file_path = String.valueOf(inputFilePath); omexExecSummary.status = OmexExecSummary.ActualStatus.PASSED; + omexExecSummary.elapsed_time_ms = System.currentTimeMillis() - startTime_ms; } new ObjectMapper().writeValue(new File(outputFilePath, "exec_summary.json"), omexExecSummary); new ObjectMapper().writeValue(new File(outputFilePath, "tracer.json"), Tracer.getTraceEvents()); return 0; } catch (Exception e) { ///TODO: Break apart into specific exceptions to maximize logging. LogManager.getLogger(this.getClass()).error(e.getMessage(), e); - OmexExecSummary omexExecSummary = OmexTestingDatabase.summarize(inputFilePath,e,Tracer.getErrors()); + OmexExecSummary omexExecSummary = OmexTestingDatabase.summarize(inputFilePath,e,Tracer.getErrors(),System.currentTimeMillis() - startTime_ms); try { new ObjectMapper().writeValue(new File(outputFilePath, "exec_summary.json"), omexExecSummary); new ObjectMapper().writeValue(new File(outputFilePath, "tracer.json"), Tracer.getTraceEvents()); diff --git a/vcell-cli/src/main/java/org/vcell/cli/run/SolverHandler.java b/vcell-cli/src/main/java/org/vcell/cli/run/SolverHandler.java index 2ee172159d..ba9fb83167 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/run/SolverHandler.java +++ b/vcell-cli/src/main/java/org/vcell/cli/run/SolverHandler.java @@ -99,7 +99,6 @@ private static void sanityCheck(VCDocument doc) { } public void initialize(List bioModelList, SedML sedml) throws ExpressionException { - Set topmostTasks = new LinkedHashSet<> (); for(BioModel bioModel : bioModelList) { Simulation[] sims = bioModel.getSimulations(); @@ -391,12 +390,15 @@ public void simulateAllTasks(ExternalDocInfo externalDocInfo, SedML sedml, CLIRe } for (TempSimulationJob tempSimulationJob : simJobsList) { - logger.debug("Initializing simulation job... "); - String logTaskMessage = "Initializing simulation job " + tempSimulationJob.getJobIndex() + " ... "; + AbstractTask task = tempSimulationToTaskMap.get(tempSimulationJob.getTempSimulation()); + String paramScanIndex = task instanceof RepeatedTask ? ":" + tempSimulationJob.getJobIndex() : ""; + String tempSimJobLabel = tempSimulationJob.getSimulationJobID() + tempSimulationJob.getJobIndex(); + String logTaskMessage = String.format("Initializing simulation job %s (%s%s)...", tempSimJobLabel, task.getId(), paramScanIndex); + logger.debug(logTaskMessage); String logTaskError = ""; long startTimeTask_ms = System.currentTimeMillis(); - AbstractTask task = tempSimulationToTaskMap.get(tempSimulationJob.getTempSimulation()); + SimulationTask simTask; String kisao = "null"; diff --git a/vcell-cli/src/main/java/org/vcell/cli/run/hdf5/BiosimulationsHdf5Writer.java b/vcell-cli/src/main/java/org/vcell/cli/run/hdf5/BiosimulationsHdf5Writer.java index 7640c9ce7f..9bf5c0135f 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/run/hdf5/BiosimulationsHdf5Writer.java +++ b/vcell-cli/src/main/java/org/vcell/cli/run/hdf5/BiosimulationsHdf5Writer.java @@ -36,7 +36,7 @@ public static void writeHdf5(HDF5ExecutionResults hdf5ExecutionResults, File out boolean didFail = false; // Create and open the Hdf5 file - logger.info("Creating hdf5 file `reports.h5` in" + outDirForCurrentSedml.getAbsolutePath()); + logger.info("Creating hdf5 file `reports.h5` in {}", outDirForCurrentSedml.getAbsolutePath()); File tempFile = new File(outDirForCurrentSedml, "reports.h5"); try { try (WritableHdfFile hdf5File = HdfFile.write(tempFile.toPath())){ diff --git a/vcell-cli/src/main/java/org/vcell/cli/run/hdf5/SpatialResultsConverter.java b/vcell-cli/src/main/java/org/vcell/cli/run/hdf5/SpatialResultsConverter.java index 1624627afa..aab2a102e8 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/run/hdf5/SpatialResultsConverter.java +++ b/vcell-cli/src/main/java/org/vcell/cli/run/hdf5/SpatialResultsConverter.java @@ -43,6 +43,11 @@ public static Map> convertSpatialResultsToSedmlFo BiosimulationLog.instance().updateDatasetStatusYml(sedmlLocation, report.getId(), dataSet.getId(), BiosimulationLog.Status.SUCCEEDED); } // end of dataset + if (dataGenToDataSets.isEmpty()){ + lg.warn(String.format("Report `%s` does not have any valid spatial component!", report.getId())); + continue; + } + // Fill out DatasetWrapper Values Hdf5SedmlResultsSpatial.SpatialComponents reportMappings = convertedData.dataMapping.get(report); Hdf5SedmlResults hdf5DatasetWrapper = new Hdf5SedmlResults(); @@ -89,18 +94,24 @@ private static boolean processDataGenerator(SedML sedml, Report report, DataGene Map sedmlTaskToVCellSim = new HashMap<>(); boolean allVarsValid = true; for (Variable variable : dataGenVarList) { // Since we're only doing single variable, this should run once! - // Check if it's asking for time (we don't include time with the rest of spatial data). - if (variable.isSymbol()) if (VariableSymbol.TIME.equals(variable.getSymbol())) continue; // for each variable we recover the task AbstractTask completeTask = sedml.getTaskWithId(variable.getReference()); if (completeTask == null) throw new RuntimeException("Null SedML task encountered"); - AbstractTask fundamentalTask = SpatialResultsConverter.getBaseTask(completeTask, sedml); // from the task we get the sbml model + if (!sourceOfTruth.getTaskGroupSet().contains(completeTask.getId())){ + lg.info(String.format("`%s` is not a spatial task!", completeTask.getId())); + allVarsValid = false; + continue; + } + AbstractTask fundamentalTask = SpatialResultsConverter.getBaseTask(completeTask, sedml); if (!(sedml.getSimulation(fundamentalTask.getSimulationReference()) instanceof UniformTimeCourse utcSim)){ lg.error("only uniform time course simulations are supported"); allVarsValid = false; break; } + // Check if it's asking for time (we don't include time with the rest of spatial data). + if (variable.isSymbol()) if (VariableSymbol.TIME.equals(variable.getSymbol())) continue; + sedmlTaskToVCellSim.put(completeTask, completeSedmlTaskToVCellSim.get(completeTask)); } if (allVarsValid){ @@ -159,7 +170,7 @@ private static boolean processDataGenerator(SedML sedml, Report report, DataGene if (comps.varsToData == null) comps.varsToData = newVars; else comps.varsToData.integrateSimilarLocations(taskVars); } - return true; + return allVarsValid; } private static List getReports(List outputs){ diff --git a/vcell-cli/src/main/java/org/vcell/cli/testing/TestReportCommand.java b/vcell-cli/src/main/java/org/vcell/cli/testing/TestReportCommand.java new file mode 100644 index 0000000000..157cf2e6fa --- /dev/null +++ b/vcell-cli/src/main/java/org/vcell/cli/testing/TestReportCommand.java @@ -0,0 +1,83 @@ +package org.vcell.cli.testing; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.LoggerContext; +import org.vcell.sedml.testsupport.OmexExecSummary; +import org.vcell.sedml.testsupport.OmexTestCase; +import org.vcell.sedml.testsupport.OmexTestReport; +import org.vcell.sedml.testsupport.OmexTestingDatabase; +import picocli.CommandLine.Command; +import picocli.CommandLine.Option; + +import java.io.File; +import java.nio.file.Files; +import java.util.List; +import java.util.concurrent.Callable; +import java.util.function.Predicate; + +@Command(name = "test-report", description = "create test reports for a test suite") +public class TestReportCommand implements Callable { + + private final static Logger logger = LogManager.getLogger(TestReportCommand.class); + + @Option(names = { "-t", "--test-cases" }, required = false, description = "[optional] test cases file - defaults to embedded test cases") + private File testCasesNdjsonFile; + + @Option(names = { "-e", "--exec-summaries" }, required = true, description = "test results file e.g. exec_summary.ndjson") + private File execSummaryNdjsonFile; + + // list of OmexTestingDatabase.TestCollection objects to include + @Option(names = { "-c", "--collections" }, required = true, description = "list of test collections to include") + private List collections; + + @Option(names = { "--report-md" }, required = true, description = "filename for generated markdown test report (e.g. ./report.md)") + private File reportFile_md; + + @Option(names = { "--report-json" }, required = false, description = "filename for generated json test report (e.g. ./report.json)") + private File reportFile_json; + + @Option(names = { "-d", "--debug" }, description = "enable debug logging") + private boolean bDebug = false; + + public Integer call() { + Level logLevel = bDebug ? Level.DEBUG : logger.getLevel(); + + LoggerContext config = (LoggerContext)(LogManager.getContext(false)); + config.getConfiguration().getLoggerConfig(LogManager.getLogger("org.vcell").getName()).setLevel(logLevel); + config.getConfiguration().getLoggerConfig(LogManager.getLogger("cbit").getName()).setLevel(logLevel); + config.updateLoggers(); + + try { + // read test cases and filter by collections + Predicate omexTestCasePredicate = tc -> collections.contains(tc.test_collection); + final List testCaseList; + if (testCasesNdjsonFile != null) { + String test_cases_contents = Files.readString(testCasesNdjsonFile.toPath()); + testCaseList = OmexTestingDatabase.parseOmexTestCases(test_cases_contents).stream().filter(omexTestCasePredicate).toList(); + } else { + // if file not specified, use embedded test cases + testCaseList = OmexTestingDatabase.loadOmexTestCases().stream().filter(omexTestCasePredicate).toList(); + } + + // read exec summaries + String exec_summary_contents = Files.readString(execSummaryNdjsonFile.toPath()); + List execSummaries = OmexTestingDatabase.loadOmexExecSummaries(exec_summary_contents); + + // generate report + OmexTestReport report = OmexTestingDatabase.generateReport(testCaseList, execSummaries); + if (reportFile_json != null) { + Files.writeString(reportFile_json.toPath(), report.toJson()); + } + if (reportFile_md != null) { + Files.writeString(reportFile_md.toPath(), report.toMarkdown()); + } + return 0; + } catch (Exception e) { + throw new RuntimeException(e.getMessage(), e); + } finally { + logger.debug("Completed all exports"); + } + } +} diff --git a/vcell-cli/src/main/resources/test_cases.ndjson b/vcell-cli/src/main/resources/test_cases.ndjson index 23267b18ab..0849bd437c 100644 --- a/vcell-cli/src/main/resources/test_cases.ndjson +++ b/vcell-cli/src/main/resources/test_cases.ndjson @@ -1,3 +1,7 @@ +{"test_collection":"VCELL_QUANT_OMEX","file_path":"BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"VCELL_QUANT_OMEX","file_path":"BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"VCELL_QUANT_OMEX","file_path":"BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"VCELL_QUANT_OMEX","file_path":"BIOMD0000000300","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"VCELL_BIOMD","file_path":"BIOMD0000000005.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"VCELL_BIOMD","file_path":"BIOMD0000000175.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"MATH_GENERATION_FAILURE","known_failure_desc":"unknown identifier I_Net_E44PPI3K_binding"} {"test_collection":"VCELL_BIOMD","file_path":"BIOMD0000000302.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"MATH_GENERATION_FAILURE","known_failure_desc":"Initial condition for variable 'h_post' references variable 'V_post'"} @@ -102,6 +106,8 @@ {"test_collection":"VCELL_BSTS_SYNTHS","file_path":"sedml/SimulatorSupportsSubstitutingAlgorithms/4.execution-should-succeed.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} {"test_collection":"VCELL_BSTS_SYNTHS","file_path":"sedml/SimulatorSupportsSubstitutingAlgorithms/1.execute-should-fail.omex","should_fail":true,"known_status":null,"known_failure_type":null,"known_failure_desc":null} {"test_collection":"VCELL_BSTS_SYNTHS","file_path":"sedml/SimulatorSupportsSubstitutingAlgorithms/2.execution-should-succeed.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"VCELL_SPATIAL","file_path":"TinySpatialProject","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"VCELL_SPATIAL","file_path":"SimpleSpatialModel","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000001.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000002.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000003.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -125,8 +131,8 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000021.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000022.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000023.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000024.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000025.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000024.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: unsupported SBML element 'delay' in expression"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000025.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: unsupported SBML element 'delay' in expression"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000026.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000027.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000028.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -135,13 +141,13 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000031.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000032.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000033.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000034.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000034.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: unsupported SBML element 'delay' in expression"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000035.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000036.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000037.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000038.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000039.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000040.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000039.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.25' for reactant 'CaER' in reaction 'v1') not handled in VCell at this time"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000040.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-numeric stoichiometry ('f' for product 'Br' in reaction 'Reaction5') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000041.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000042.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000043.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -155,16 +161,16 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000051.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000052.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000053.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000054.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000054.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000054_BIOMD0000000054_url.sedml_BIOMD0000000054_url' Task 'task1'. java.lang.RuntimeException: CVODE solver could not generate input file: infinite loop in eliminating function nesting "} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000055.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000056.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000057.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000058.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000059.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000059.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.01' for reactant 'Ca_cyt' in reaction 'Calcium_cyt_Jerp') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000060.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000061.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000062.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000063.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000063.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.5' for reactant 'FDP' in reaction 'Vgol') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000064.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000065.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000066.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -182,7 +188,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000078.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000079.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000080.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000081.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000081.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('9.967E-4' for reactant 'ATP_C' in reaction 'PIP5kinase') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000082.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000083.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000084.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -213,7 +219,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000109.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000110.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000111.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000112.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000112.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Failed to translate SBML model into BioModel: Cannot invoke \"org.sbml.jsbml.SBase.getAnnotation()\" because \"sbase\" is null"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000113.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000114.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000115.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -238,7 +244,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000134.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000135.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000136.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000137.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000137.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000137_BIOMD0000000137_url.sedml_BIOMD0000000137_url' Task 'task1'. java.lang.RuntimeException: Could not execute code: CVODE solver failed : at time 0.01, discontinuity ((x6 + x7 + x8) > 100) evaluated to TRUE, solver assumed FALSE"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000138.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000139.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000140.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -246,17 +252,17 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000142.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000143.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000144.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000145.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000145.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.001' for reactant 'Ca_ER' in reaction 'R9') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000146.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000147.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000148.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000149.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000150.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000151.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000151.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.5' for product 'x13' in reaction 'R23') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000152.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000153.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000154.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000155.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000154.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: unsupported SBML element 'delay' in expression"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000155.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: unsupported SBML element 'delay' in expression"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000156.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000157.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000158.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -276,7 +282,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000172.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000173.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000174.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000175.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000175.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"MATH_GENERATION_FAILURE","known_failure_desc":"failed to generate math: Unable to sort, unknown identifier I_Net_E44PPI3K_binding"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000176.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000177.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000178.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -297,17 +303,17 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000193.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000194.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000195.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000196.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000196.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: unsupported SBML element 'delay' in expression"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000197.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000198.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000199.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000199.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.5' for reactant 'NADPH' in reaction 'r4') not handled in VCell at this time"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000200.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000201.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000202.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000203.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000204.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000205.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000206.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000206.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.1' for product 's6o' in reaction 'v10') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000207.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000208.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000209.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -333,9 +339,9 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000229.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000230.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000231.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000232.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000232.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.5' for reactant 'O2' in reaction 'vresp') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000233.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000234.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000234.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"1626.047 seconds - timeout - Failed execution: Model 'BIOMD0000000234_GemcitabineCorrected.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out in SundialsSolverStandalone_x64"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000235.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000236.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000237.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -345,19 +351,19 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000241.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000242.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000243.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000244.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000245.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000246.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000244.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.5' for reactant 'FBP' in reaction 'e_Emp') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000245.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.978' for product 's_pyr' in reaction 'r1') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000246.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.001' for product 'Ca_in' in reaction 'vo') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000247.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000248.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000248.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Failed to translate SBML model into BioModel: Error binding global parameter 'ATPase_flux_mM' to model: 'ATPase' is either not found in your model or is not allowed to be used in the current context."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000249.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000250.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000251.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000252.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000253.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000254.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000255.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000256.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000255.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":"1221.598 seconds - didn't timeout but very close"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000256.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Failed to translate SBML model into BioModel: Error binding global parameter 'XIAP_ini' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000257.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000258.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000259.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -377,8 +383,8 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000273.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000274.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000275.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000276.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000277.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000276.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000276_BIOMD0000000276_url.sedml_BIOMD0000000276_url' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVODE ERROR] CVode\n The right-hand side routine failed at the first call.\n\nCVODE solver failed : CV_FIRST_RHSFUNC_ERR: The right-hand side routine failed at the first call : FunctionRangeException : FunctionRangeException : Evaluated to infinity in \"(9.8436754999999998006 - ((0.00049463777420084603827 + (0.048942788387963273578 / (1 + ((((1.2549999999999998934 * (__D_B_0 == 1)) + ((1.2549999999999998934 - (0.1817000000000000004 * (1 - exp( - (0.044200000000000003175 * ( - 575 + t)))))) * !((__D_B_0 == 1)))) / (1.2549999999999998934 * (0.16863731981259902359 ^ (1 / (15 + (112.51999999999999602 / (1 + exp( - (1000000 * (1.2161999999999999478 - ((1.2549999999999998934 * (__D_B_0 == 1)) + ((1.2549999999999998934 - (0.1817000000000000004 * (1 - exp( - (0.044200000000000003175 * ( - 575 + t)))))) * !((__D_B_0 == 1)))))))))))))) ^ (15 + (112.51999999999999602 / (1 + exp( - (1000000 * (1.2161999999999999478 - ((1.2549999999999998934 * (__D_B_0 == 1)) + ((1.2549999999999998934 - (0.1817000000000000004 * (1 - exp( - (0.044200000000000003175 * ( - 575 + t)))))) * !((__D_B_0 == 1)))))))))))))) * x1) - (0.012500000000000000694 * x1))\"\n where:\n\t__D_B_0 = 1.000000\n\tt = 0.000000\n\tx1 = 0.000000"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000277.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000277_BIOMD0000000277_url.sedml_BIOMD0000000277_url' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVODE ERROR] CVode\n The right-hand side routine failed at the first call.\n\nCVODE solver failed : CV_FIRST_RHSFUNC_ERR: The right-hand side routine failed at the first call : FunctionRangeException : FunctionRangeException : Evaluated to infinity in \"(9.8436754999999998006 - ((0.00049463777420084603827 + (0.048942788387963273578 / (1 + ((((1.2199999999999999734 * (__D_B_0 == 1)) + ((1.2199999999999999734 + (0.26240000000000002212 * (1 - exp( - (0.05689999999999999919 * ( - 575 + t)))))) * !((__D_B_0 == 1)))) / (1.2549999999999998934 * (0.16863731981259902359 ^ (1 / (15 + (112.51999999999999602 / (1 + exp( - (1000000 * (1.2161999999999999478 - ((1.2199999999999999734 * (__D_B_0 == 1)) + ((1.2199999999999999734 + (0.26240000000000002212 * (1 - exp( - (0.05689999999999999919 * ( - 575 + t)))))) * !((__D_B_0 == 1)))))))))))))) ^ (15 + (112.51999999999999602 / (1 + exp( - (1000000 * (1.2161999999999999478 - ((1.2199999999999999734 * (__D_B_0 == 1)) + ((1.2199999999999999734 + (0.26240000000000002212 * (1 - exp( - (0.05689999999999999919 * ( - 575 + t)))))) * !((__D_B_0 == 1)))))))))))))) * x1) - (0.012500000000000000694 * x1))\"\n where:\n\t__D_B_0 = 1.000000\n\tt = 0.000000\n\tx1 = 0.000000"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000278.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000279.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000280.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -402,11 +408,11 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000298.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000299.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000300.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000301.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000302.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000301.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000301_BIOMD0000000301_url.sedml_BIOMD0000000301_url' Task 'task1'. java.lang.RuntimeException: Could not execute code: CVODE solver failed : at time 0.01, discontinuity (t >= 0.010000000000000000208) evaluated to TRUE, solver assumed FALSE"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000302.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"MATH_GENERATION_FAILURE","known_failure_desc":"MappingException occurred: failed to generate math: generated an invalid mathDescription: Initial condition for variable 'h_post' references variable 'V_post'. Initial conditions cannot reference variables"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000303.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000304.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000305.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000305.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'V' to model: 'Fw_1st_step' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000306.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000307.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000308.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -420,7 +426,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000316.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000317.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000318.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000319.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000319.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.02' for product 'gamma' in reaction 'r3') not handled in VCell at this time"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000320.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000321.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000322.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -439,13 +445,13 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000335.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000336.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000337.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000338.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000339.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000338.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'compartment_1' has constant attribute set to False, not currently supported"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000339.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'compartment_1' has constant attribute set to False, not currently supported"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000340.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000341.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000342.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000342.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'Vmed' has constant attribute set to False, not currently supported"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000343.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000344.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000344.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000345.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000346.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000347.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -454,9 +460,9 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000350.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000351.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000352.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000353.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000354.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000355.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000353.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('12345.7' for reactant 'cpd_C00369Glc_CS' in reaction 'rn_R02112CS_G2') not handled in VCell at this time"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000354.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'cytosol' has constant attribute set to False, not currently supported"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000355.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'cytosol' has constant attribute set to False, not currently supported"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000356.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000357.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000358.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -484,16 +490,16 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000380.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000381.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000382.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000383.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000384.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000385.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000386.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000387.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000388.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000383.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.5' for product 'PGA' in reaction 'PGA_prod_Vo') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000384.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.5' for product 'PGA' in reaction 'PGA_prod_Vo') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000385.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.5' for product 'PGA' in reaction 'PGA_prod_Vo') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000386.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.5' for product 'PGA' in reaction 'PGA_prod_Vo') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000387.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.5' for product 'PGA' in reaction 'PGA_prod_Vo') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000388.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.6' for product 'Ru5P' in reaction 'GAP2Ru5P') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000389.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000390.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000391.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000392.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000392.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.5' for reactant 'ATP' in reaction 'RuBisCO_6_O2') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000393.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000394.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000395.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -516,7 +522,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000412.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000413.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000414.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000415.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000415.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.574' for product 'species_7' in reaction 'reaction_1') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000416.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000417.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000418.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -525,12 +531,12 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000421.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000422.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000423.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000424.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000424.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'Default' has constant attribute set to False, not currently supported."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000425.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000426.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000426.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.08' for reactant 'species_31' in reaction 'reaction_28') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000427.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000428.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000429.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000429.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'compartment_1' has constant attribute set to False, not currently supported."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000430.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000431.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000432.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -558,24 +564,24 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000454.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000455.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000456.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000457.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000457.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'parameter_1' to model: 'UNRESOLVED.Size' is either not found in your model or is not allowed to be used in the current context."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000458.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000459.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000460.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000461.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000459.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: couldn't find SBase with sid=null in SBMLSymbolMapping"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000460.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: couldn't find SBase with sid=null in SBMLSymbolMapping"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000461.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: couldn't find SBase with sid=null in SBMLSymbolMapping"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000462.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000463.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000463.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('8.5' for reactant 'species_14' in reaction 'reaction_11') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000464.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000465.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000466.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000467.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000468.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000469.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000470.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000471.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000472.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000473.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000474.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000468.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"found more than one SBase match for sid=unitime, matched [org.vcell.sbml.vcell.SBMLSymbolMapping$SBaseWrapper@15c6027d, org.vcell.sbml.vcell.SBMLSymbolMapping$SBaseWrapper@11c88cca]"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000469.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.5' for reactant 's_1372' in reaction 'r_1230') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000470.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.5' for reactant 's_1372' in reaction 'r_1230') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000471.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('4.33333333333333' for reactant 's_0056' in reaction 'r_1052') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000472.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('4.33333333333333' for reactant 's_0056' in reaction 'r_1052') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000473.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.8' for reactant 's_0595' in reaction 'r_1014') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000474.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"found more than one SBase match for sid=v, matched [org.vcell.sbml.vcell.SBMLSymbolMapping$SBaseWrapper@3ba97962, org.vcell.sbml.vcell.SBMLSymbolMapping$SBaseWrapper@5b5b53c6]"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000475.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000476.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000477.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -597,12 +603,12 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000493.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000494.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000495.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000496.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000497.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000498.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000499.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000500.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000501.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000496.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.1358' for reactant 's_0001' in reaction 'r_1812') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000497.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('1.1358' for reactant 's_0001' in reaction 'r_1812') not handled in VCell at this time."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000498.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Unable to initialize bioModel for the given selection: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000499.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_9' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000500.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Unable to initialize bioModel for the given selection: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000501.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Unable to initialize bioModel for the given selection: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000502.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000503.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000504.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -632,54 +638,54 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000528.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000529.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000530.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000531.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000532.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000531.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000531_model.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVDENSE ERROR] CVDense\n A memory request failed.\n\nCVODE solver failed : CV_CONV_FAILURE: convergence test failures occurred too many times during one internal step"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000532.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000532_Vazquez2014.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVDENSE ERROR] CVDense\n A memory request failed.\n\nCVODE solver failed : CV_CONV_FAILURE: convergence test failures occurred too many times during one internal step"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000533.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000534.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000535.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000536.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000537.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000534.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_6' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000535.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_3' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000536.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_80' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000537.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_40' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000538.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000539.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000540.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000541.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000542.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000542.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Unable to create and add rate rule to VC model : 'r77.LumpedJ' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000543.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000544.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000545.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000546.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000547.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000547.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Compartment_3' to model: 'UNRESOLVED.Size' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000548.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000549.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000550.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000551.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000552.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000553.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000554.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000555.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000556.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000554.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000554_Cloutier2009(final).sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVODE ERROR] CVode\n The right-hand side routine failed at the first call.\n\nCVODE solver failed : CV_FIRST_RHSFUNC_ERR: The right-hand side routine failed at the first call : FunctionRangeException : FunctionRangeException : Evaluated to infinity in \"(0.01200000000000000025 + (0.005040000000000000209 / (1 + exp( - (4.5918599999999996086 * ( - 199 + t))))) - (0.005040000000000000209 / (1 + exp( - (4.5918599999999996086 * ( - 505 + t))))) - (0.01200000000000000025 * (((42.372881355932207725 * Vv) ^ 2) + (1483.050847457627242 * ((42.372881355932207725 * Vv) ^ - 0.5) * (0.01200000000000000025 + (0.005040000000000000209 / (1 + exp( - (4.5918599999999996086 * ( - 199 + t))))) - (0.005040000000000000209 / (1 + exp( - (4.5918599999999996086 * ( - 505 + t)))))))) / (1 + (17.796610169491525966 * ((42.372881355932207725 * Vv) ^ - 0.5)))))\"\n where:\n\tt = 0.000000\n\tVv = 0.023700"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000555.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000555_Auer2010.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVDENSE ERROR] CVDense\n A memory request failed.\n\nCVODE solver failed : CV_CONV_FAILURE: convergence test failures occurred too many times during one internal step"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000556.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Unable to create and add rate rule to VC model : 'r0.LumpedJ' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000557.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000558.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000559.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000560.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000561.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000562.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000561.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000561_Martins2013.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVDENSE ERROR] CVDense\n A memory request failed.\n\nCVODE solver failed : CV_CONV_FAILURE: convergence test failures occurred too many times during one internal step"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000562.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000000562 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000563.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000564.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000565.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000566.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000567.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000566.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000566_Morris2009.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVDENSE ERROR] CVDense\n A memory request failed.\n\nCVODE solver failed : CV_CONV_FAILURE: convergence test failures occurred too many times during one internal step"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000567.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000567_Morris2008.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVDENSE ERROR] CVDense\n A memory request failed.\n\nCVODE solver failed : CV_CONV_FAILURE: convergence test failures occurred too many times during one internal step"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000568.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000569.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000570.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000570.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'compartment_4' has constant attribute set to False, not currently supported."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000571.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000572.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000573.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000574.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000575.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000574.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000575.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Unable to create and add rate rule to VC model : 'J21.LumpedJ' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000576.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000577.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000578.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000578.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Unable to create and add rate rule to VC model : 'v_r33.LumpedJ' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000579.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000580.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000581.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -690,17 +696,17 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000586.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000587.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000588.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000589.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000589.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_17' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000590.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000591.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000592.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000593.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000591.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Lambda functionParse Error while parsing expression '\"Boehm2014 - isoform-specific dimerization of pSTAT5A and pSTAT5B\"': Lexical error at line 1, column 1. Encountered: \"\\\"\" (34), after : \"\""} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000592.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000000592 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000593.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000000593 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000594.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000595.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000596.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000595.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":"timeout > 12 minutes"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000596.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000597.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000598.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000599.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000599.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_1' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000600.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000601.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000602.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -709,44 +715,44 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000605.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000606.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000607.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000608.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000608.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: Non-integer stoichiometry ('0.5' for reactant 'x_18' in reaction 'R_18') not handled in VCell at this time."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000609.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000610.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000611.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000612.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000613.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000613.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Q0' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000614.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000615.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000616.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000617.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000618.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000618.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error processing model: model2 - couldn't find SBase with sid=null in SBMLSymbolMapping org.vcell.sbml.vcell.SBMLImportException: couldn't find SBase with sid=null in SBMLSymbolMapping"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000619.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000620.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000621.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000620.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000620_BIOMD0000000620_url.sedml_BIOMD0000000620_url' Task 'task1'. java.lang.RuntimeException: Could not execute code: CVODE solver failed : at time 5.5, discontinuity (t == Anakinra_dose_counter) evaluated to TRUE, solver assumed FALSE"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000621.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000621_BIOMD0000000621_url.sedml_BIOMD0000000621_url' Task 'task1'. java.lang.RuntimeException: Could not execute code: CVODE solver failed : at time 5.5, discontinuity (t == Anakinra_dose_counter) evaluated to TRUE, solver assumed FALSE"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000622.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000623.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000624.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000625.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000626.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000627.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000628.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000627.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'venous_balloon' has constant attribute set to False, not currently supported."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000628.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_8' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000629.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000630.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000631.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000632.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000632.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'k4b' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000633.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000634.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000635.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000636.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000637.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000638.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000637.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000638.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000639.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000640.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000641.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000642.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000643.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000644.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000645.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000643.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000644.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000645.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000646.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000647.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000648.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -773,7 +779,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000670.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000671.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000672.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000673.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000673.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000673_MODEL1006230054_edited.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVDENSE ERROR] CVDense\n A memory request failed.\n\nCVODE solver failed : CV_CONV_FAILURE: convergence test failures occurred too many times during one internal step"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000674.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000675.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000676.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -795,7 +801,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000692.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000693.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000695.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000696.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000696.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_16' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000697.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000698.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000699.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -804,13 +810,13 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000702.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000703.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000704.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000705.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000706.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000705.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_21' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000706.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"found more than one SBase match for sid=v, matched [org.vcell.sbml.vcell.SBMLSymbolMapping$SBaseWrapper@4c5da4f9, org.vcell.sbml.vcell.SBMLSymbolMapping$SBaseWrapper@6987a133]"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000707.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000708.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000709.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000710.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000711.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000710.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_0_0' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000711.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"> 5 minutes - Failed execution: Model 'BIOMD0000000711_Hancioglu2007 - Human Immune Response to Influenza A virus.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000712.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000713.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000714.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -818,7 +824,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000716.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000717.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000718.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000719.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000719.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000719_tsai2014.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVODE ERROR] CVode\n The right-hand side routine failed at the first call.\n\nCVODE solver failed : CV_FIRST_RHSFUNC_ERR: The right-hand side routine failed at the first call : DivideByZeroException : DivideByZeroException : divide by zero in \"( - (1.5 * (APC_C_active - APC_C_total) / (1 + ((0.5 / Plx1_active) ^ 4))) - (0.14999999999999999445 * APC_C_active))\"\n where:\n\tAPC_C_active = 1.000000\n\tAPC_C_total = 1.000000\n\tPlx1_active = 0.000000"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000720.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000721.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000722.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -830,15 +836,15 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000728.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000729.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000730.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000731.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000732.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000731.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Treg_origin_fraction_CD4' to model: 'func_TRegs_Production_from_CD4' is either not found in your model or is not allowed to be used in the current context"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000732.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000732_Kirschner_1998.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 3.5563e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 3.5563e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 3.5563e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 3.5563e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 2.21887e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 2.21887e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 2.21887e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 2.21887e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 1.36968e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 737.903 and h = 1.36968e-14 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n The above warning has been issued mxhnil times and will not be issued again for this problem.\n\n\n[CVODE ERROR] CVode\n At t = 737.903, mxstep steps taken before reaching tout.\n\nCVODE solver failed : CV_TOO_MUCH_WORK: took mxstep internal steps but could not reach tout.\n\nTry reducing maximum time step."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000733.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000734.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000735.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000736.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000737.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000738.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000739.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000739.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_19' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000740.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000741.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000742.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -863,7 +869,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000761.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000762.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000763.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000764.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000764.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_3' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000765.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000766.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000767.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -885,7 +891,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000783.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000784.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000785.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000786.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000786.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000787.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000788.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000789.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -893,7 +899,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000791.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000792.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000793.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000794.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000794.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000795.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000796.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000797.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -902,8 +908,8 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000800.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000801.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000802.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000803.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000804.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000803.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000804.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_1' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000805.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000806.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000807.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -913,7 +919,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000811.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000812.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000813.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000814.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000814.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000814_Perez-Garcia19 Computational design of improved standardized chemotherapy protocols for grade 2 oligodendrogliomas.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: CVODE solver failed : at time 28.616, discontinuity ((((t - (28 * ceil((0.035714285714285712303 * t)))) * (((t < 0.0) && 1) || 0.0)) + ((t - (28 * floor((0.035714285714285712303 * t)))) * !((((t < 0.0) && 1) || 0.0)))) == 27) evaluated to FALSE, solver assumed TRUE"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000815.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000816.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000817.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -926,12 +932,12 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000824.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000825.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000826.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000827.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000827.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000827_Ito2019 - gefitnib resistance of lung adenocarcinoma caused by MET amplification.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 6.54889e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 6.54889e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 6.54889e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 6.54889e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 6.54889e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 6.54889e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 6.54889e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 6.54889e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 6.54889e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n Internal t = 78.2588 and h = 4.51381e-15 are such that t + h = t on the next step. The solver will continue anyway.\n\n\n[CVODE WARNING] CVode\n The above warning has been issued mxhnil times and will not be issued again for this problem.\n\n\n[CVODE ERROR] CVode\n At t = 78.2588, mxstep steps taken before reaching tout.\n\nCVODE solver failed : CV_TOO_MUCH_WORK: took mxstep internal steps but could not reach tout.\n\nTry reducing maximum time step."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000828.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000829.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000830.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000830.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000831.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000832.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000832.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_4' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000833.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000834.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000835.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -940,22 +946,22 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000838.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000839.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000840.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000841.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000841.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"org.vcell.sbml.vcell.SBMLImportException: unsupported SBML element 'delay' in expression"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000842.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000843.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000844.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000845.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000846.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000847.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000847.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000848.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000849.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000849.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000850.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000851.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000852.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000853.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000854.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000855.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000856.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000856.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'tV' has constant attribute set to False, not currently supported."} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000857.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000858.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000859.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -964,14 +970,14 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000862.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000863.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000864.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000865.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000866.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000867.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000868.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000869.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000870.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000871.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000872.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000865.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000866.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000867.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_9' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000868.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000869.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000870.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000871.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000872.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000873.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000874.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000875.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -980,7 +986,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000878.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000879.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000880.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000881.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000881.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000882.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000883.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000884.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -998,7 +1004,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000896.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000897.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000898.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000899.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000899.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000900.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000901.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000902.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -1007,7 +1013,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000905.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000906.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000907.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000908.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000908.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_2' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000909.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000910.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000911.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -1018,15 +1024,15 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000916.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000917.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000918.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000919.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000919.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000920.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000921.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000922.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000923.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000924.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000925.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000925.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000926.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000927.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000927.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000928.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000929.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000930.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -1051,24 +1057,24 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000949.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000950.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000951.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000952.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000952.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000000952_Rodenfels2019_V1.sedml_model' Task 'task1'. java.lang.IllegalArgumentException: X must contain more than one value"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000953.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000954.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000955.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000956.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000956.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Unable to initialize bioModel for the given selection: expecting vcell var 'Ro_CA' mapped to SBML target 'Ro_CA' to be constant valued org.vcell.sedml.SEDMLImportException: expecting vcell var 'Ro_CA' mapped to SBML target 'Ro_CA' to be constant valued"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000957.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000958.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000959.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000960.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000961.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000961.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000962.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000963.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000964.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000965.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000965.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000966.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000967.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000968.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000969.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000969.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_11' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000970.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000971.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000972.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -1087,7 +1093,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000985.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000986.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000987.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000988.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000988.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000989.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000990.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000991.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -1110,7 +1116,7 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001010.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001011.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001012.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001013.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001013.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000001013_Leon-Triana2021 - eqs 1 and 2 - fig 3b.sedml_model15' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 \"/tmp/VCell_CLI_193f9b57e146875651314089006626/BIOMD0000001013/Leon-Triana2021 - eqs 1 and 2 - fig 3b.sedml/SimID_1601148481_0_.cvodeInput\" \"/tmp/VCell_CLI_193f9b57e146875651314089006626/BIOMD0000001013/Leon-Triana2021 - eqs 1 and 2 - fig 3b.sedml/SimID_1601148481_0_.ida\") "} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001014.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001015.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001016.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -1118,32 +1124,32 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001018.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001019.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001020.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001021.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001022.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001021.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Metabolite_0' to model: 'UNRESOLVED.initConc' is either not found in your model or is not allowed to be used in the current context"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001022.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000001022_Creemers2021 - Fig 2(B) inset 2.sedml_model6' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 \"/tmp/VCell_CLI_193f9b4214e7972318304477051167/BIOMD0000001022/Creemers2021 - Fig 2(B) inset 2.sedml/SimID_1038023516_0_.cvodeInput\" \"/tmp/VCell_CLI_193f9b4214e7972318304477051167/BIOMD0000001022/Creemers2021 - Fig 2(B) inset 2.sedml/SimID_1038023516_0_.ida\") "} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001023.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001024.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001025.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001026.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001027.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001028.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001029.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001030.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001031.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001025.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000001025_Chaudhury2020 Eq 7-9 - Fig 4(B) simulation.sedml_model5' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 \"/tmp/VCell_CLI_193f9b43fd52760581088069625327/BIOMD0000001025/Chaudhury2020 Eq 7-9 - Fig 4(B) simulation.sedml/SimID_1974748314_0_.cvodeInput\" \"/tmp/VCell_CLI_193f9b43fd52760581088069625327/BIOMD0000001025/Chaudhury2020 Eq 7-9 - Fig 4(B) simulation.sedml/SimID_1974748314_0_.ida\") "} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001026.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Summary_flux_to_RBC' to model: 'Vin' is either not found in your model or is not allowed to be used in the current context"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001027.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'Liver' has constant attribute set to False, not currently supported."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001028.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'Liver' has constant attribute set to False, not currently supported."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001029.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'Liver' has constant attribute set to False, not currently supported."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001030.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000001030_Sontag2017 - Fig 1D shifted exponential simulation.sedml_model4' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 \"/tmp/VCell_CLI_193f9b42ace2198722070284996283/BIOMD0000001030/Sontag2017 - Fig 1D shifted exponential simulation.sedml/SimID_1085451342_0_.cvodeInput\" \"/tmp/VCell_CLI_193f9b42ace2198722070284996283/BIOMD0000001030/Sontag2017 - Fig 1D shifted exponential simulation.sedml/SimID_1085451342_0_.ida\") "} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001031.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000001031_Al-Tuwairqi2020 - Fig2b simulation.sedml_model6' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 \"/tmp/VCell_CLI_193f9b4239d16177731767565387322/BIOMD0000001031/Al-Tuwairqi2020 - Fig2b simulation.sedml/SimID_1472540734_0_.cvodeInput\" \"/tmp/VCell_CLI_193f9b4239d16177731767565387322/BIOMD0000001031/Al-Tuwairqi2020 - Fig2b simulation.sedml/SimID_1472540734_0_.ida\") "} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001032.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001033.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001034.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001035.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001035.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000001035_Al-Tuwairqi2020 - Fig7(a) simulation.sedml_model11' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 \"/tmp/VCell_CLI_193f9b48bb36616768759896770720/BIOMD0000001035/Al-Tuwairqi2020 - Fig7(a) simulation.sedml/SimID_724140336_0_.cvodeInput\" \"/tmp/VCell_CLI_193f9b48bb36616768759896770720/BIOMD0000001035/Al-Tuwairqi2020 - Fig7(a) simulation.sedml/SimID_724140336_0_.ida\") "} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001036.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001037.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001038.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001039.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001040.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001039.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error adding Feature to vcModel org.vcell.sbml.vcell.SBMLImportException: compartment 'Liver' has constant attribute set to False, not currently supported."} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001040.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SBML_IMPORT_FAILURE","known_failure_desc":"Error binding global parameter 'Summary_flux_to_RBC' to model: 'Vin' is either not found in your model or is not allowed to be used in the current context"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001041.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001042.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001043.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001044.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001042.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000001042_Makhlouf2020 - Fig1(b).sedml_model1' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 \"/tmp/VCell_CLI_193fa3dcefc8848860965362711991/BIOMD0000001042/Makhlouf2020 - Fig1(b).sedml/SimID_1236394790_0_.cvodeInput\" \"/tmp/VCell_CLI_193fa3dcefc8848860965362711991/BIOMD0000001042/Makhlouf2020 - Fig1(b).sedml/SimID_1236394790_0_.ida\") "} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001043.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000001043_Wodarz2001 - Fig3A non-cytotoxic.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: Unexpected error: Process timed out\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 \"/tmp/VCell_CLI_193f9b4ce9c2304006454824128300/BIOMD0000001043/Wodarz2001 - Fig3A non-cytotoxic.sedml/SimID_1036516481_0_.cvodeInput\" \"/tmp/VCell_CLI_193f9b4ce9c2304006454824128300/BIOMD0000001043/Wodarz2001 - Fig3A non-cytotoxic.sedml/SimID_1036516481_0_.ida\") "} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001044.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"java.lang.ClassCastException: class org.sbml.jsbml.xml.XMLNode cannot be cast to class org.sbml.jsbml.Annotation (org.sbml.jsbml.xml.XMLNode and org.sbml.jsbml.Annotation are in unnamed module of loader 'app')"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001045.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001046.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001046.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001046 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001047.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001048.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001052.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} @@ -1155,21 +1161,21 @@ {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001058.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001059.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001060.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001061.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001062.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001063.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001064.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001065.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001066.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001067.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001068.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001069.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001070.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001071.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001061.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001061 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001062.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001062 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001063.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001063 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001064.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001064 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001065.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"UNCATETORIZED_FAULT","known_failure_desc":"Failed execution: Model 'BIOMD0000001065_vonDassow2000_1x4.timecourse1.sedml_model' Task 'task1'. java.lang.RuntimeException: Could not execute code: \n[CVODE ERROR] CVode\n At t = 660.5repeated recoverable right-hand side function errors.\n\nCVODE solver failed : CV_REPTD_RHSFUNC_ERR: repeated recoverable right-hand side function errors : FunctionDomainException : FunctionDomainException : pow(u,v) and u=-0.000000<0 and v=2.619640 not an integer in \"((0.052821806954783216692 * ((0.00030494421841729539872 / (0.00030494421841729539872 + (EN_0_0 ^ 2.6196399999999999686))) ^ 9.6309500000000003439) / (5.7617237886031359827e-23 + (0.4000000000000000222 * ((0.00030494421841729539872 / (0.00030494421841729539872 + (EN_0_0 ^ 2.6196399999999999686))) ^ 9.6309500000000003439)))) - (0.13205451738695803132 * ci_0_0))\"\n where:\n\tEN_0_0 = -0.000000\n\tci_0_0 = 1.000000\n\n\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 /tmp/VCell_CLI_193f9f93f2012192791967497390908/BIOMD0000001065/vonDassow2000_1x4.timecourse1.sedml/SimID_1545840175_0_.cvodeInput /tmp/VCell_CLI_193f9f93f2012192791967497390908/BIOMD0000001065/vonDassow2000_1x4.timecourse1.sedml/SimID_1545840175_0_.ida) "} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001066.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001066 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001067.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001067 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001068.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001068 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001069.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001069 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001070.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001070 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001071.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001071 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001072.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001073.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001074.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} -{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001076.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001073.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001073 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001074.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001074 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001076.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"SEDML_NO_SEDMLS_TO_EXECUTE","known_failure_desc":"writeErrorList(): BIOMD0000001076 java.lang.RuntimeException: There are no SED-MLs in the archive to execute"} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001077.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001078.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} {"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001079.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} diff --git a/vcell-cli/src/test/java/org/vcell/cli/run/BSTSBasedOmexExecTest.java b/vcell-cli/src/test/java/org/vcell/cli/run/BSTSBasedOmexExecTest.java index 80e9132304..69cb4f6212 100644 --- a/vcell-cli/src/test/java/org/vcell/cli/run/BSTSBasedOmexExecTest.java +++ b/vcell-cli/src/test/java/org/vcell/cli/run/BSTSBasedOmexExecTest.java @@ -11,9 +11,9 @@ import org.vcell.cli.CLIPythonManager; import org.vcell.cli.CLIRecordable; import org.vcell.cli.PythonStreamException; -import org.vcell.cli.testsupport.FailureType; -import org.vcell.cli.testsupport.OmexTestCase; -import org.vcell.cli.testsupport.OmexTestingDatabase; +import org.vcell.sedml.testsupport.FailureType; +import org.vcell.sedml.testsupport.OmexTestCase; +import org.vcell.sedml.testsupport.OmexTestingDatabase; import org.vcell.trace.TraceEvent; import org.vcell.trace.Tracer; import org.vcell.util.VCellUtilityHub; diff --git a/vcell-cli/src/test/java/org/vcell/cli/run/BSTSBasedTestSuiteFiles.java b/vcell-cli/src/test/java/org/vcell/cli/run/BSTSBasedTestSuiteFiles.java index 57cb164e61..d5c4d267d2 100644 --- a/vcell-cli/src/test/java/org/vcell/cli/run/BSTSBasedTestSuiteFiles.java +++ b/vcell-cli/src/test/java/org/vcell/cli/run/BSTSBasedTestSuiteFiles.java @@ -3,8 +3,8 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import org.vcell.cli.testsupport.OmexTestCase; -import org.vcell.cli.testsupport.OmexTestingDatabase; +import org.vcell.sedml.testsupport.OmexTestCase; +import org.vcell.sedml.testsupport.OmexTestingDatabase; import java.io.FileNotFoundException; import java.io.IOException; @@ -19,7 +19,11 @@ public class BSTSBasedTestSuiteFiles { public static OmexTestCase[] getBSTSTestCases() throws IOException { List allTestCases = OmexTestingDatabase.loadOmexTestCases(); - Predicate testFilter = t -> t.test_collection.repo == OmexTestingDatabase.TestDataRepo.vcell; + Predicate testFilter = t -> + t.test_collection == OmexTestingDatabase.TestCollection.VCELL_BIOMD || + t.test_collection == OmexTestingDatabase.TestCollection.VCELL_BSTS_VCML || + t.test_collection == OmexTestingDatabase.TestCollection.VCELL_BSTS_SBML_CORE || + t.test_collection == OmexTestingDatabase.TestCollection.VCELL_BSTS_SYNTHS; return allTestCases.stream().filter(testFilter).toArray(OmexTestCase[]::new); } diff --git a/vcell-cli/src/test/java/org/vcell/cli/run/BiosimulationsFiles.java b/vcell-cli/src/test/java/org/vcell/cli/run/BiosimulationsFiles.java deleted file mode 100644 index cfddd80d85..0000000000 --- a/vcell-cli/src/test/java/org/vcell/cli/run/BiosimulationsFiles.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.vcell.cli.run; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Tag; - -import java.io.InputStream; -import java.util.Arrays; -import java.util.function.Predicate; - - -@Tag("Fast") -public class BiosimulationsFiles { - - private final static String[] allProjectIDs = new String[]{ - "BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th", - "BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc", - "BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh", - "BIOMD0000000300" - }; - - public static String[] getProjectIDs() { - Predicate testFilter = t -> true; - - return Arrays.stream(allProjectIDs).filter(testFilter).toArray(String[]::new); - } - - public static InputStream getOmex(String projectID) { - if (!Arrays.stream(allProjectIDs).anyMatch(pid -> pid.equals(projectID))) { - throw new RuntimeException("project "+projectID+" not in project list"); - } - return getFileFromResourceAsStream(projectID + ".spec.omex"); - } - - private static InputStream getFileFromResourceAsStream(String fileName) { - InputStream inputStream = BiosimulationsFiles.class.getResourceAsStream("/BiosimulationsOmexWithResults/"+fileName); - if (inputStream == null) { - throw new RuntimeException("file not found! " + fileName); - } else { - return inputStream; - } - } - - public static InputStream getH5(String projectID) { - if (!Arrays.stream(allProjectIDs).anyMatch(pid -> pid.equals(projectID))) { - throw new RuntimeException("project "+projectID+" not in project list"); - } - return getFileFromResourceAsStream(projectID + ".h5"); - } - - @Test - public void test_read_omex_file() { - InputStream inputStream = getOmex(allProjectIDs[0]); - Assertions.assertTrue(inputStream != null); - } - - @Test - public void test_read_H5_file() { - InputStream inputStream = getH5(allProjectIDs[0]); - Assertions.assertTrue(inputStream != null); - } - -} diff --git a/vcell-cli/src/test/java/org/vcell/cli/run/QuantOmexExecFiles.java b/vcell-cli/src/test/java/org/vcell/cli/run/QuantOmexExecFiles.java new file mode 100644 index 0000000000..7938705473 --- /dev/null +++ b/vcell-cli/src/test/java/org/vcell/cli/run/QuantOmexExecFiles.java @@ -0,0 +1,58 @@ +package org.vcell.cli.run; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.vcell.sedml.testsupport.OmexTestCase; +import org.vcell.sedml.testsupport.OmexTestingDatabase; + +import java.io.IOException; +import java.io.InputStream; +import java.util.List; +import java.util.function.Predicate; + + +@Tag("Fast") +public class QuantOmexExecFiles { + + public static OmexTestCase[] getTestCases() throws IOException { + List allTestCases = OmexTestingDatabase.loadOmexTestCases(); + Predicate testFilter = t -> t.test_collection == OmexTestingDatabase.TestCollection.VCELL_QUANT_OMEX; + + return allTestCases.stream().filter(testFilter).toArray(OmexTestCase[]::new); + } + + public static InputStream getOmex(OmexTestCase testCase) { + String fullPath = testCase.test_collection.pathPrefix + "/" + testCase.file_path; + String path = fullPath.substring(fullPath.indexOf("/OmexWithThirdPartyResults")); + return getFileFromResourceAsStream(path + ".spec.omex"); + } + + private static InputStream getFileFromResourceAsStream(String path) { + InputStream inputStream = QuantOmexExecFiles.class.getResourceAsStream(path); + if (inputStream == null) { + throw new RuntimeException("file not found! " + path); + } else { + return inputStream; + } + } + + public static InputStream getH5(OmexTestCase testCase) { + String fullPath = testCase.test_collection.pathPrefix + "/" + testCase.file_path; + String path = fullPath.substring(fullPath.indexOf("/OmexWithThirdPartyResults")); + return getFileFromResourceAsStream(path + ".h5"); + } + + @Test + public void test_read_omex_file() throws IOException { + InputStream inputStream = getOmex(getTestCases()[0]); + Assertions.assertTrue(inputStream != null); + } + + @Test + public void test_read_H5_file() throws IOException { + InputStream inputStream = getH5(getTestCases()[0]); + Assertions.assertTrue(inputStream != null); + } + +} diff --git a/vcell-cli/src/test/java/org/vcell/cli/run/BiosimulationsExecTest.java b/vcell-cli/src/test/java/org/vcell/cli/run/QuantOmexExecTest.java similarity index 50% rename from vcell-cli/src/test/java/org/vcell/cli/run/BiosimulationsExecTest.java rename to vcell-cli/src/test/java/org/vcell/cli/run/QuantOmexExecTest.java index b51c6c164a..470e921dad 100644 --- a/vcell-cli/src/test/java/org/vcell/cli/run/BiosimulationsExecTest.java +++ b/vcell-cli/src/test/java/org/vcell/cli/run/QuantOmexExecTest.java @@ -1,7 +1,6 @@ package org.vcell.cli.run; import cbit.vcell.mongodb.VCMongoMessage; -import cbit.vcell.resource.NativeLib; import cbit.vcell.resource.PropertyLoader; import org.apache.commons.io.FileUtils; import org.junit.jupiter.api.AfterAll; @@ -12,6 +11,10 @@ import org.vcell.cli.CLIPythonManager; import org.vcell.cli.CLIRecordable; import org.vcell.cli.PythonStreamException; +import org.vcell.sedml.testsupport.FailureType; +import org.vcell.sedml.testsupport.OmexTestCase; +import org.vcell.sedml.testsupport.OmexTestingDatabase; +import org.vcell.trace.TraceEvent; import org.vcell.trace.Tracer; import org.vcell.util.VCellUtilityHub; import org.vcell.util.exe.Executable; @@ -19,20 +22,16 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.nio.file.FileAlreadyExistsException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; +import java.util.*; import java.util.function.Predicate; import java.util.stream.Collectors; import static org.junit.jupiter.api.Assertions.assertFalse; @Tag("BSTS_IT") -public class BiosimulationsExecTest { +public class QuantOmexExecTest { @BeforeAll public static void setup() throws PythonStreamException, IOException { PropertyLoader.setProperty(PropertyLoader.installationRoot, new File("..").getAbsolutePath()); @@ -50,51 +49,51 @@ public static void teardown() throws Exception { VCellUtilityHub.shutdown(); } - @SuppressWarnings("unused") - public enum FAULT { - ARRAY_INDEX_OUT_OF_BOUNDS, - BAD_EULER_FORWARD, - DIVIDE_BY_ZERO, - EXPRESSIONS_DIFFERENT, - EXPRESSION_BINDING, - GEOMETRY_SPEC_DIFFERENT, - HDF5_FILE_ALREADY_EXISTS, // reports.h5 file already exists, so action is blocked. Fixed in branch to be merged in. - MATHOVERRIDES_SurfToVol, - MATH_GENERATION_FAILURE, - MATH_OVERRIDES_A_FUNCTION, - MATH_OVERRIDES_INVALID, - NULL_POINTER_EXCEPTION, - OPERATION_NOT_SUPPORTED, // VCell simply doesn't have the necessary features to run this archive. - SBML_IMPORT_FAILURE, - SEDML_DIFF_NUMBER_OF_BIOMODELS, - SEDML_ERRONEOUS_UNIT_SYSTEM, - SEDML_ERROR_CONSTRUCTING_SIMCONTEXT, - SEDML_MATH_OVERRIDE_NAMES_DIFFERENT, - SEDML_MATH_OVERRIDE_NOT_EQUIVALENT, - SEDML_NONSPATIAL_STOCH_HISTOGRAM, - SEDML_NO_MODELS_IN_OMEX, - SEDML_SIMCONTEXT_NOT_FOUND_BY_NAME, - SEDML_SIMULATION_NOT_FOUND_BY_NAME, - SEDML_UNSUPPORTED_ENTITY, - SEDML_UNSUPPORTED_MODEL_REFERENCE, // Model refers to either a non-existent model (invalid SED-ML) or to another model with changes (not supported yet) - TOO_SLOW, - UNCATETORIZED_FAULT, - UNITS_EXCEPTION, - UNKNOWN_IDENTIFIER, - UNSUPPORTED_NONSPATIAL_STOCH_HISTOGRAM - - } +// @SuppressWarnings("unused") +// public enum FailureType { +// ARRAY_INDEX_OUT_OF_BOUNDS, +// BAD_EULER_FORWARD, +// DIVIDE_BY_ZERO, +// EXPRESSIONS_DIFFERENT, +// EXPRESSION_BINDING, +// GEOMETRY_SPEC_DIFFERENT, +// HDF5_FILE_ALREADY_EXISTS, // reports.h5 file already exists, so action is blocked. Fixed in branch to be merged in. +// MATHOVERRIDES_SurfToVol, +// MATH_GENERATION_FAILURE, +// MATH_OVERRIDES_A_FUNCTION, +// MATH_OVERRIDES_INVALID, +// NULL_POINTER_EXCEPTION, +// OPERATION_NOT_SUPPORTED, // VCell simply doesn't have the necessary features to run this archive. +// SBML_IMPORT_FAILURE, +// SEDML_DIFF_NUMBER_OF_BIOMODELS, +// SEDML_ERRONEOUS_UNIT_SYSTEM, +// SEDML_ERROR_CONSTRUCTING_SIMCONTEXT, +// SEDML_MATH_OVERRIDE_NAMES_DIFFERENT, +// SEDML_MATH_OVERRIDE_NOT_EQUIVALENT, +// SEDML_NONSPATIAL_STOCH_HISTOGRAM, +// SEDML_NO_MODELS_IN_OMEX, +// SEDML_SIMCONTEXT_NOT_FOUND_BY_NAME, +// SEDML_SIMULATION_NOT_FOUND_BY_NAME, +// SEDML_UNSUPPORTED_ENTITY, +// SEDML_UNSUPPORTED_MODEL_REFERENCE, // Model refers to either a non-existent model (invalid SED-ML) or to another model with changes (not supported yet) +// TOO_SLOW, +// UNCATETORIZED_FailureType, +// UNITS_EXCEPTION, +// UNKNOWN_IDENTIFIER, +// UNSUPPORTED_NONSPATIAL_STOCH_HISTOGRAM +// +// } @SuppressWarnings("unused") - static Map knownFaults() { - HashMap faults = new HashMap<>(); - return faults; + static Map knownFailureTypes() { + HashMap failureTypes = new HashMap<>(); + return failureTypes; } - public static Collection testCases() { - Predicate projectFilter; + public static Collection testCases() throws IOException { + Predicate projectFilter; projectFilter = (t) -> true; // don't skip any for now. - return Arrays.stream(BiosimulationsFiles.getProjectIDs()).filter(projectFilter).collect(Collectors.toList()); + return Arrays.stream(QuantOmexExecFiles.getTestCases()).filter(projectFilter).collect(Collectors.toList()); } static class TestRecorder implements CLIRecordable { @@ -137,13 +136,13 @@ public void writeImportErrorList(Exception e, String message) { @ParameterizedTest @MethodSource("testCases") - public void testBiosimulationsProject(String testCaseProjectID) throws Exception { - FAULT knownFault = knownFaults().get(testCaseProjectID); + public void testBiosimulationsProject(OmexTestCase testCase) throws Exception { + FailureType knownFailureType = testCase.known_failure_type; try { - System.out.println("running test " + testCaseProjectID); + System.out.println("running testCase " + testCase.test_collection + " " + testCase.file_path); Path outdirPath = Files.createTempDirectory("BiosimulationsExecTest"); - InputStream omexInputStream = BiosimulationsFiles.getOmex(testCaseProjectID); + InputStream omexInputStream = QuantOmexExecFiles.getOmex(testCase); Path omexFile = Files.createTempFile("BiosimulationsExec_", "omex"); FileUtils.copyInputStreamToFile(omexInputStream, omexFile.toFile()); @@ -152,21 +151,17 @@ public void testBiosimulationsProject(String testCaseProjectID) throws Exception Path computedH5File = outdirPath.resolve("report.h5"); String errorMessage = (Tracer.hasErrors()) ? "failure: '" + Tracer.getErrors().get(0).message.replace("\n", " | ") : ""; - assertFalse(Tracer.hasErrors(), errorMessage); - if (knownFault != null){ - throw new RuntimeException("test case passed, but expected " + knownFault.name() + ", remove " - + testCaseProjectID + " from known faults"); + if (Tracer.hasErrors()) { + throw new RuntimeException(errorMessage); + } + if (knownFailureType != null){ + throw new RuntimeException("test case passed, but expected " + knownFailureType.name() + ", remove " + + testCase.file_path + " from known FailureTypes"); } - -// // verify log file has status of 'SUCCEEDED' -// Gson gson = new Gson(); -// try (Reader jsonReader = new ) -// } -// gson.newJsonReader(new ) // compare hdf5 files to within absolute tolerance of 1e-9 double absTolerance = 1e-9; - InputStream h5fileStream = BiosimulationsFiles.getH5(testCaseProjectID); + InputStream h5fileStream = QuantOmexExecFiles.getH5(testCase); Path expectedH5File = Files.createTempFile("BiosimulationsExec_", "h5"); FileUtils.copyInputStreamToFile(h5fileStream, expectedH5File.toFile()); Executable command = new Executable(new String[]{ "sh", "-c", "h5diff", "-r", "--delta", Double.toString(absTolerance), @@ -175,47 +170,19 @@ public void testBiosimulationsProject(String testCaseProjectID) throws Exception }); command.start(new int[] { 0, 1 }); String stdOutString = command.getStdoutString(); - assertFalse(stdOutString.contains("position"), "H5 files have significant differences: " + - stdOutString.substring(0, Math.min(300, stdOutString.length()))); - - } catch (Exception | AssertionError e){ - FAULT fault = this.determineFault(e); - if (knownFault == fault) { + if (stdOutString.contains("position")){ + throw new RuntimeException("H5 files have significant differences: " + stdOutString.substring(0, Math.min(300, stdOutString.length()))); + } + } catch (Exception e){ + List errorEvents = Tracer.getErrors(); + FailureType observedFailure = OmexTestingDatabase.determineFault(e, errorEvents); + if (knownFailureType == observedFailure) { System.err.println("Expected error: " + e.getMessage()); return; } - System.err.println("add FAULT." + fault.name() + " to " + testCaseProjectID); - throw new Exception("Test error: " + testCaseProjectID + " failed improperly", e); - } - } - - private FAULT determineFault(Throwable caughtException){ // Throwable because Assertion Error - String errorMessage = caughtException.getMessage(); - if (errorMessage == null) errorMessage = ""; // Prevent nullptr exception - - if (caughtException instanceof Error && caughtException.getCause() != null) - errorMessage = caughtException.getCause().getMessage(); - - if (errorMessage.contains("refers to either a non-existent model")) { //"refers to either a non-existent model (invalid SED-ML) or to another model with changes (not supported yet)" - return FAULT.SEDML_UNSUPPORTED_MODEL_REFERENCE; - } else if (errorMessage.contains("System IO encountered a fatal error")){ - Throwable subException = caughtException.getCause(); - //String subMessage = (subException == null) ? "" : subException.getMessage(); - if (subException instanceof FileAlreadyExistsException){ - return FAULT.HDF5_FILE_ALREADY_EXISTS; - } - } else if (errorMessage.contains("error while processing outputs: null")){ - Throwable subException = caughtException.getCause(); - if (subException instanceof ArrayIndexOutOfBoundsException){ - return FAULT.ARRAY_INDEX_OUT_OF_BOUNDS; - } - } else if (errorMessage.contains("nconsistent unit system in SBML model") || - errorMessage.contains("ust be of type")){ - return FAULT.SEDML_ERRONEOUS_UNIT_SYSTEM; + System.err.println("add FailureType." + observedFailure.name() + " to " + testCase.file_path); + throw new Exception("Test error: " + testCase.file_path + " failed improperly", e); } - - return FAULT.UNCATETORIZED_FAULT; } - } diff --git a/vcell-cli/src/test/java/org/vcell/cli/run/SpatialArchiveFiles.java b/vcell-cli/src/test/java/org/vcell/cli/run/SpatialArchiveFiles.java index d0ce3d6f6a..0aec8ea2ba 100644 --- a/vcell-cli/src/test/java/org/vcell/cli/run/SpatialArchiveFiles.java +++ b/vcell-cli/src/test/java/org/vcell/cli/run/SpatialArchiveFiles.java @@ -3,51 +3,46 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.vcell.sedml.testsupport.OmexTestCase; +import org.vcell.sedml.testsupport.OmexTestingDatabase; import java.io.FileNotFoundException; +import java.io.IOException; import java.io.InputStream; import java.util.Arrays; +import java.util.List; import java.util.function.Predicate; import static org.junit.jupiter.api.Assertions.assertNotNull; @Tag("Fast") public class SpatialArchiveFiles { - private final static String[] allTestFiles = new String[]{ - "TinySpatialProject.omex", - "SimpleSpatialModel.omex" - }; - public static String[] getSpatialTestCases() { - Predicate testFilter = t -> true; + public static OmexTestCase[] getSpatialTestCases() throws IOException { + List allTestCases = OmexTestingDatabase.loadOmexTestCases(); + Predicate testFilter = t -> t.test_collection == OmexTestingDatabase.TestCollection.VCELL_SPATIAL; - return Arrays.stream(allTestFiles).filter(testFilter).toArray(String[]::new); + return allTestCases.stream().filter(testFilter).toArray(OmexTestCase[]::new); } - public static InputStream getSpatialTestCase(String testFile) { - if (Arrays.stream(allTestFiles).noneMatch(file -> file.equals(testFile))) { - throw new RuntimeException("file not found for VCell Published Test Suite test "+testFile); - } - try { - return getFileFromResourceAsStream(testFile); - }catch (FileNotFoundException e){ - throw new RuntimeException("failed to find test case file '"+testFile+"': " + e.getMessage(), e); - } + public static InputStream getOmex(OmexTestCase testCase) { + String fullPath = testCase.test_collection.pathPrefix + "/" + testCase.file_path; + String path = fullPath.substring(fullPath.indexOf("/spatial")); + return getFileFromResourceAsStream(path + ".omex"); } - private static InputStream getFileFromResourceAsStream(String fileName) throws FileNotFoundException { - Class spatialFilesClass = org.vcell.cli.run.SpatialArchiveFiles.class; - InputStream nextTestFile = spatialFilesClass.getResourceAsStream("/spatial/" + fileName); - if (nextTestFile == null) { - throw new FileNotFoundException("file not found! " + fileName); + private static InputStream getFileFromResourceAsStream(String path) { + InputStream inputStream = SpatialArchiveFiles.class.getResourceAsStream(path); + if (inputStream == null) { + throw new RuntimeException("file not found! " + path); } else { - return nextTestFile; + return inputStream; } } @Test - public void test_read_Spatial_omex_file() { - InputStream inputStream = getSpatialTestCase(allTestFiles[0]); - assertNotNull(inputStream); + public void test_read_omex_file() throws IOException { + InputStream inputStream = getOmex(getSpatialTestCases()[0]); + Assertions.assertTrue(inputStream != null); } } diff --git a/vcell-cli/src/test/java/org/vcell/cli/run/SpatialExecTest.java b/vcell-cli/src/test/java/org/vcell/cli/run/SpatialExecTest.java index 400404b3bd..303e7c166b 100644 --- a/vcell-cli/src/test/java/org/vcell/cli/run/SpatialExecTest.java +++ b/vcell-cli/src/test/java/org/vcell/cli/run/SpatialExecTest.java @@ -1,11 +1,12 @@ package org.vcell.cli.run; import cbit.vcell.mongodb.VCMongoMessage; -import cbit.vcell.resource.NativeLib; import cbit.vcell.resource.PropertyLoader; import org.apache.commons.io.FileUtils; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.core.LoggerContext; import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.params.ParameterizedTest; @@ -13,6 +14,9 @@ import org.vcell.cli.CLIPythonManager; import org.vcell.cli.CLIRecordable; import org.vcell.cli.PythonStreamException; +import org.vcell.sedml.testsupport.FailureType; +import org.vcell.sedml.testsupport.OmexTestCase; +import org.vcell.sedml.testsupport.OmexTestingDatabase; import org.vcell.trace.TraceEvent; import org.vcell.trace.Tracer; import org.vcell.util.VCellUtilityHub; @@ -39,6 +43,13 @@ public static void setup() throws PythonStreamException, IOException { PropertyLoader.setProperty(PropertyLoader.cliWorkingDir, new File("../vcell-cli-utils").getAbsolutePath()); VCMongoMessage.enabled = false; + LoggerContext config = (LoggerContext)(LogManager.getContext(false)); + config.getConfiguration().getLoggerConfig(LogManager.getLogger("org.vcell").getName()).setLevel(Level.DEBUG); + config.getConfiguration().getLoggerConfig(LogManager.getLogger("cbit").getName()).setLevel(Level.DEBUG); + config.updateLoggers(); + config.getConfiguration().getLoggerConfig(LogManager.getLogger("io.jhdf").getName()).setLevel(Level.WARN); + config.updateLoggers(); + CLIPythonManager.getInstance().instantiatePythonProcess(); } @@ -48,156 +59,124 @@ public static void teardown() throws Exception { VCellUtilityHub.shutdown(); } - @SuppressWarnings("unused") - public enum FAULT { - ARRAY_INDEX_OUT_OF_BOUNDS, - BAD_EULER_FORWARD, - DIVIDE_BY_ZERO, - EXPRESSIONS_DIFFERENT, - EXPRESSION_BINDING, - GEOMETRY_SPEC_DIFFERENT, - HDF5_FILE_ALREADY_EXISTS, // reports.h5 file already exists, so action is blocked. Fixed in branch to be merged in. - MATHOVERRIDES_SurfToVol, - MATH_GENERATION_FAILURE, - MATH_OVERRIDES_A_FUNCTION, - MATH_OVERRIDES_INVALID, - NULL_POINTER_EXCEPTION, - OPERATION_NOT_SUPPORTED, // VCell simply doesn't have the necessary features to run this archive. - SBML_IMPORT_FAILURE, - SEDML_DIFF_NUMBER_OF_BIOMODELS, - SEDML_ERRONEOUS_UNIT_SYSTEM, - SEDML_ERROR_CONSTRUCTING_SIMCONTEXT, - SEDML_MATH_OVERRIDE_NAMES_DIFFERENT, - SEDML_MATH_OVERRIDE_NOT_EQUIVALENT, - SEDML_NONSPATIAL_STOCH_HISTOGRAM, - SEDML_NO_MODELS_IN_OMEX, - SEDML_SIMCONTEXT_NOT_FOUND_BY_NAME, - SEDML_SIMULATION_NOT_FOUND_BY_NAME, - SEDML_UNSUPPORTED_ENTITY, - SEDML_UNSUPPORTED_MODEL_REFERENCE, // Model refers to either a non-existent model (invalid SED-ML) or to another model with changes (not supported yet) - TOO_SLOW, - UNCATETORIZED_FAULT, - UNITS_EXCEPTION, - UNKNOWN_IDENTIFIER, - UNSUPPORTED_NONSPATIAL_STOCH_HISTOGRAM - +// public enum FAULT { +// ARRAY_INDEX_OUT_OF_BOUNDS, +// BAD_EULER_FORWARD, +// DIVIDE_BY_ZERO, +// EXPRESSIONS_DIFFERENT, +// EXPRESSION_BINDING, +// GEOMETRY_SPEC_DIFFERENT, +// HDF5_FILE_ALREADY_EXISTS, // reports.h5 file already exists, so action is blocked. Fixed in branch to be merged in. +// MATHOVERRIDES_SurfToVol, +// MATH_GENERATION_FAILURE, +// MATH_OVERRIDES_A_FUNCTION, +// MATH_OVERRIDES_INVALID, +// NULL_POINTER_EXCEPTION, +// OPERATION_NOT_SUPPORTED, // VCell simply doesn't have the necessary features to run this archive. +// SBML_IMPORT_FAILURE, +// SEDML_DIFF_NUMBER_OF_BIOMODELS, +// SEDML_ERRONEOUS_UNIT_SYSTEM, +// SEDML_ERROR_CONSTRUCTING_SIMCONTEXT, +// SEDML_MATH_OVERRIDE_NAMES_DIFFERENT, +// SEDML_MATH_OVERRIDE_NOT_EQUIVALENT, +// SEDML_NONSPATIAL_STOCH_HISTOGRAM, +// SEDML_NO_MODELS_IN_OMEX, +// SEDML_SIMCONTEXT_NOT_FOUND_BY_NAME, +// SEDML_SIMULATION_NOT_FOUND_BY_NAME, +// SEDML_UNSUPPORTED_ENTITY, +// SEDML_UNSUPPORTED_MODEL_REFERENCE, // Model refers to either a non-existent model (invalid SED-ML) or to another model with changes (not supported yet) +// TOO_SLOW, +// UNCATETORIZED_FAULT, +// UNITS_EXCEPTION, +// UNKNOWN_IDENTIFIER, +// UNSUPPORTED_NONSPATIAL_STOCH_HISTOGRAM +// +// } + + static Map knownFailureTypes() { + HashMap failureTypes = new HashMap<>(); + return failureTypes; // Hooray! no accepted failures yet! } - static Set blacklistedModels(){ - HashSet blacklistSet = new HashSet<>(); - // Hooray! Nothing unsupported yet! - return blacklistSet; - } + public static Collection testCases() throws IOException { + Predicate projectFilter; + projectFilter = (t) -> true; // don't skip any for now. - static Map knownFaults() { - HashMap faults = new HashMap<>(); - // Hooray! no known faults yet! - return faults; + return Arrays.stream(SpatialArchiveFiles.getSpatialTestCases()).filter(projectFilter).collect(Collectors.toList()); } - public static Collection testCases() { - Set modelsToFilter = new HashSet<>(blacklistedModels()); - Predicate filter = (t) -> !modelsToFilter.contains(t); + static class TestRecorder implements CLIRecordable { - return Arrays.stream(SpatialArchiveFiles.getSpatialTestCases()).filter(filter).collect(Collectors.toList()); + public TestRecorder() { + Tracer.clearTraceEvents(); + } + + @Override + public void writeDetailedErrorList(Exception e, String message) { + System.err.println("writeDetailedErrorList(): " + message); + Tracer.failure(e, "writeDetailedErrorList(): "+message); + } + @Override + public void writeFullSuccessList(String message) { + System.out.println("writeFullSuccessList(): " + message); + Tracer.success("writeFullSuccessList(): " + message); + } + @Override + public void writeErrorList(Exception e, String message) { + System.err.println("writeErrorList(): " + message); + Tracer.failure(e, "writeErrorList(): " + message); + } + @Override + public void writeDetailedResultList(String message) { + System.out.println("writeDetailedResultList(): " + message); + Tracer.log("writeDetailedResultList(): "+message); + } + @Override + public void writeSpatialList(String message) { + System.out.println("writeSpatialList(): " + message); + Tracer.log("writeSpatialList(): "+message); + } + @Override + public void writeImportErrorList(Exception e, String message) { + System.err.println("writeImportErrorList(): " + message); + Tracer.failure(e, "writeImportErrorList(): " + message); + } } @ParameterizedTest @MethodSource("testCases") - public void testSpatialOmex(String testCaseFilename) throws Exception { - String osName = System.getProperty("os.name").toLowerCase(); - String osArch = System.getProperty("os.arch").toLowerCase(); - - // Skip test if running on macOS ARM64 - Assumptions.assumeFalse(osName.contains("mac") && osArch.equals("aarch64"), - "Test skipped on macOS ARM64"); - - SpatialExecTest.FAULT knownFault = knownFaults().get(testCaseFilename); + public void testSpatialOmex(OmexTestCase testCase) throws Exception { + FailureType knownFailureType = testCase.known_failure_type; Tracer.clearTraceEvents(); try { - System.out.println("running test " + testCaseFilename); + System.out.println("running testCase " + testCase.test_collection + " " + testCase.file_path); Path outdirPath = Files.createTempDirectory("Spatial_OmexExecTest"); - CLIRecordable cliRecorder = new CLIRecordable() { - @Override - public void writeDetailedErrorList(Exception e, String message) { - System.err.println("writeDetailedErrorList(): " + message); - Tracer.failure(e, "detailedErrorList: " + message); - } - @Override - public void writeFullSuccessList(String message) { - System.out.println("writeFullSuccessList(): " + message); - Tracer.success("fullSuccessList: " + message); - } - @Override - public void writeErrorList(Exception e, String message) { - System.err.println("writeErrorList(): " + message); - Tracer.failure(e, "errorList: " + message); - } - @Override - public void writeDetailedResultList(String message) { - System.out.println("writeDetailedResultList(): " + message); - Tracer.log("detailedResultList: " + message); - } - @Override - public void writeSpatialList(String message) { - System.out.println("writeSpatialList(): " + message); - Tracer.log("spatialList: " + message); - } - @Override - public void writeImportErrorList(Exception e, String message) { - System.err.println("writeImportErrorList(): " + message); - Tracer.failure(e, "importErrorList: " + message); - } - }; - InputStream omexInputStream = SpatialArchiveFiles.getSpatialTestCase(testCaseFilename); + InputStream omexInputStream = SpatialArchiveFiles.getOmex(testCase); Path omexFile = Files.createTempFile("Spatial_OmexFile_", "omex"); FileUtils.copyInputStreamToFile(omexInputStream, omexFile.toFile()); + + CLIRecordable cliRecorder = new TestRecorder(); ExecuteImpl.singleMode(omexFile.toFile(), outdirPath.toFile(), cliRecorder); - assertFalse(Tracer.hasErrors(), "no exception, but trace errors found: error[0] = "+Tracer.getErrors().get(0).message.replace("\n"," | ")); - if (knownFault != null){ - throw new RuntimeException("test case passed, but expected " + knownFault.name() + ", remove " - + testCaseFilename + " from known faults"); + String errorMessage = (Tracer.hasErrors()) ? "failure: '" + Tracer.getErrors().get(0).message.replace("\n", " | ") : ""; + if (Tracer.hasErrors()) { + throw new RuntimeException(errorMessage); + } + if (knownFailureType != null){ + throw new RuntimeException("test case passed, but expected " + knownFailureType.name() + ", remove " + testCase.file_path + " from known FailureTypes"); } - } catch (Exception | AssertionError e){ - SpatialExecTest.FAULT fault = this.determineFault(e); - if (knownFault == fault) { + } catch (Exception e){ + List errorEvents = Tracer.getErrors(); + FailureType observedFailure = OmexTestingDatabase.determineFault(e, errorEvents); + if (knownFailureType == observedFailure) { System.err.println("Expected error: " + e.getMessage()); return; } - System.err.println("add FAULT." + fault.name() + " to " + testCaseFilename); - throw new Exception("Test error: " + testCaseFilename + " failed improperly", e); + System.err.println("add FailureType." + observedFailure.name() + " to " + testCase.file_path); + throw new Exception("Test error: " + testCase.file_path + " failed improperly", e); } } - - private SpatialExecTest.FAULT determineFault(Throwable caughtException){ // Throwable because Assertion Error - String errorMessage = caughtException.getMessage(); - if (errorMessage == null) errorMessage = ""; // Prevent nullptr exception - - if (caughtException instanceof Error && caughtException.getCause() != null) - errorMessage = caughtException.getCause().getMessage(); - - if (errorMessage.contains("refers to either a non-existent model")) { //"refers to either a non-existent model (invalid SED-ML) or to another model with changes (not supported yet)" - return SpatialExecTest.FAULT.SEDML_UNSUPPORTED_MODEL_REFERENCE; - } else if (errorMessage.contains("System IO encountered a fatal error")){ - Throwable subException = caughtException.getCause(); - //String subMessage = (subException == null) ? "" : subException.getMessage(); - if (subException instanceof FileAlreadyExistsException){ - return SpatialExecTest.FAULT.HDF5_FILE_ALREADY_EXISTS; - } - } else if (errorMessage.contains("error while processing outputs: null")){ - Throwable subException = caughtException.getCause(); - if (subException instanceof ArrayIndexOutOfBoundsException){ - return SpatialExecTest.FAULT.ARRAY_INDEX_OUT_OF_BOUNDS; - } - } else if (errorMessage.contains("nconsistent unit system in SBML model") || - errorMessage.contains("ust be of type")){ - return SpatialExecTest.FAULT.SEDML_ERRONEOUS_UNIT_SYSTEM; - } - - return SpatialExecTest.FAULT.UNCATETORIZED_FAULT; - } } diff --git a/vcell-cli/src/test/java/org/vcell/cli/testsupport/TestOmexTestReport.java b/vcell-cli/src/test/java/org/vcell/cli/testsupport/TestOmexTestReport.java new file mode 100644 index 0000000000..b0a9e19292 --- /dev/null +++ b/vcell-cli/src/test/java/org/vcell/cli/testsupport/TestOmexTestReport.java @@ -0,0 +1,44 @@ +package org.vcell.cli.testsupport; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.vcell.sedml.testsupport.*; +import org.junit.jupiter.api.Tag; + +@Tag("Fast") +public class TestOmexTestReport { + @Test + void checkTableIsMade(){ + OmexTestReport.MarkdownTable table = new OmexTestReport.MarkdownTable(); + table.setNumRowsAndColums(4,3); + table.setRowTitle(0, "VCell Developer"); + table.setRowTitle(1, "Favorite Byte"); + table.setRowTitle(2, "Favorite Pizza Topping"); + table.setRowTitle(3, "Favorite Number"); + table.setColumnTitle(0, "Logan"); + table.setColumnTitle(1, "Jim"); + table.setColumnTitle(2, "Alex"); + table.setTableValue(0, 0, true); + table.setTableValue(0, 1, true); + table.setTableValue(0, 2, false); + table.setTableValue(1, 0, (byte)136); + table.setTableValue(1, 1, (byte)255); + table.setTableValue(1, 2, (byte)0); + table.setTableValue(2, 0, "Pepperoni"); + table.setTableValue(2, 1, "Feta Cheeze"); // Spelling is correct + table.setTableValue(2, 2, "Extra Cheese"); + table.setTableValue(3, 0, 17); + table.setTableValue(3, 1, 42); + table.setTableValue(3, 2, 3.14159); + + String expectedResult = """ + | | Logan | Jim | Alex | + |:----------------------:|:---------:|:-----------:|:------------:| + | VCell Developer | true | true | false | + | Favorite Byte | 0x88 | 0xFF | 0x00 | + | Favorite Pizza Topping | Pepperoni | Feta Cheeze | Extra Cheese | + | Favorite Number | 17 | 42 | 3.14159 | + """; + Assertions.assertEquals(expectedResult, table.getMarkdownTable()); + } +} diff --git a/vcell-cli/src/test/java/org/vcell/cli/testsupport/TestOmexTestingDatabase.java b/vcell-cli/src/test/java/org/vcell/cli/testsupport/TestOmexTestingDatabase.java index 6e16ed9fe7..71a40dd182 100644 --- a/vcell-cli/src/test/java/org/vcell/cli/testsupport/TestOmexTestingDatabase.java +++ b/vcell-cli/src/test/java/org/vcell/cli/testsupport/TestOmexTestingDatabase.java @@ -2,8 +2,11 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.vcell.sedml.testsupport.*; import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.List; @@ -30,34 +33,64 @@ void execSummariesLoad() throws IOException { @Test void queryOmexTestCase() throws IOException { - String[] shouldFindUnique = { - "sedml/SimulatorSupportsAddReplaceRemoveModelElementChanges/2.execution-should-succeed.omex", - "bsts-omex/misc-projects/BIOMD0000000842.omex", - "omex_files/BIOMD0000000842.omex" - }; - String[] shouldFindMany = { - "11.omex", - "BIOMD0000000842.omex", - "2.execution-should-succeed.omex" - }; - String[] shouldNotFind = { - "11111.omex", - "2.execution-should-succeed", - "sedml/SimulatorSupportsAddReplaceRemoveModelElementChanges" - }; + List shouldFindUnique = List.of( + Paths.get("sedml/SimulatorSupportsAddReplaceRemoveModelElementChanges/2.execution-should-succeed.omex"), + Paths.get("bsts-omex/misc-projects/BIOMD0000000842.omex"), + Paths.get("omex_files/BIOMD0000000842.omex") + ); + List shouldFindMany = List.of( + Paths.get("/root/BIOMD0000000842.omex"), + Paths.get("/root/2.execution-should-succeed.omex") + ); + List shouldNotFind = List.of( + Paths.get("11111.omex"), + Paths.get("2.execution-should-succeed"), + Paths.get("sedml/SimulatorSupportsAddReplaceRemoveModelElementChanges") + ); List allTestCases = OmexTestingDatabase.loadOmexTestCases(); - for (String path : shouldFindUnique) { - List omexTestCase = OmexTestingDatabase.queryOmexTestCase(allTestCases, path); + for (Path path : shouldFindUnique) { + List omexTestCase = OmexTestingDatabase.queryOmexTestCase(allTestCases, path, PathUtils.findCommonPrefix(shouldFindUnique)); Assertions.assertEquals(1, omexTestCase.size()); } - for (String path : shouldFindMany) { - List omexTestCase = OmexTestingDatabase.queryOmexTestCase(allTestCases, path); + for (Path path : shouldFindMany) { + List omexTestCase = OmexTestingDatabase.queryOmexTestCase(allTestCases, path, PathUtils.findCommonPrefix(shouldFindMany)); Assertions.assertTrue(omexTestCase.size() > 1); } - for (String path : shouldNotFind) { - List omexTestCase = OmexTestingDatabase.queryOmexTestCase(allTestCases, path); + for (Path path : shouldNotFind) { + List omexTestCase = OmexTestingDatabase.queryOmexTestCase(allTestCases, path, PathUtils.findCommonPrefix(shouldNotFind)); Assertions.assertTrue(omexTestCase.isEmpty()); } } + // test generateReport + @Test + void generateReport() throws IOException { + // read the line delimited json file in resources path /org/vcell/cli/testsupport/fake_test_cases.ndjson into a String + String test_cases_ndjson = new String(getClass().getResourceAsStream("/org/vcell/cli/testsupport/fake_test_cases.ndjson").readAllBytes()); + + String exec_summary_ndjson = new String(getClass().getResourceAsStream("/org/vcell/cli/testsupport/fake_exec_summaries.ndjson").readAllBytes()); + + List testCases = OmexTestingDatabase.parseOmexTestCases(test_cases_ndjson); + OmexTestingDatabase.TestCollection testCollection = OmexTestingDatabase.TestCollection.SYSBIO_BIOMD; + testCases = testCases.stream().filter(c -> c.test_collection == testCollection).toList(); + List omexExecSummaries = OmexTestingDatabase.loadOmexExecSummaries(exec_summary_ndjson); + OmexTestReport report = OmexTestingDatabase.generateReport(testCases, omexExecSummaries); + Assertions.assertEquals(50, report.getStatistics().totalExecutions); + Assertions.assertEquals(54, report.getStatistics().testCaseCount); + Assertions.assertEquals(5, report.getStatistics().failedExecutionsCount); + Assertions.assertEquals(45, report.getStatistics().passedExecutionsCount); + Assertions.assertEquals(2, report.getStatistics().unmatchedExecutionsCount); + Assertions.assertEquals(6, report.getStatistics().unmatchedTestCaseCount); + Assertions.assertEquals(4, report.getStatistics().testCaseChangeCount); + Assertions.assertEquals(2, report.unmatchedExecSummaries.size()); + Assertions.assertEquals(6, report.unmatchedTestCases.size()); + Assertions.assertEquals(4, report.testCaseChanges.size()); + + String reportYaml = report.toYaml(); + System.out.println(reportYaml); + + String reportMarkdown = report.toMarkdown(); + System.out.println(reportMarkdown); + } + } diff --git a/vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th.h5 b/vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th.h5 similarity index 100% rename from vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th.h5 rename to vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th.h5 diff --git a/vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th.spec.omex b/vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th.spec.omex similarity index 100% rename from vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th.spec.omex rename to vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000003_tellurium_A_minimal_cascade_model_for_th.spec.omex diff --git a/vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc.h5 b/vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc.h5 similarity index 100% rename from vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc.h5 rename to vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc.h5 diff --git a/vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc.spec.omex b/vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc.spec.omex similarity index 100% rename from vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc.spec.omex rename to vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000006_tellurium_Modeling_the_cell_division_cyc.spec.omex diff --git a/vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh.h5 b/vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh.h5 similarity index 100% rename from vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh.h5 rename to vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh.h5 diff --git a/vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh.spec.omex b/vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh.spec.omex similarity index 100% rename from vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh.spec.omex rename to vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000036_tellurium_A_simple_model_of_circadian_rh.spec.omex diff --git a/vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000300.h5 b/vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000300.h5 similarity index 100% rename from vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000300.h5 rename to vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000300.h5 diff --git a/vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000300.spec.omex b/vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000300.spec.omex similarity index 100% rename from vcell-cli/src/test/resources/BiosimulationsOmexWithResults/BIOMD0000000300.spec.omex rename to vcell-cli/src/test/resources/OmexWithThirdPartyResults/BIOMD0000000300.spec.omex diff --git a/vcell-cli/src/test/resources/org/vcell/cli/testsupport/fake_exec_summaries.ndjson b/vcell-cli/src/test/resources/org/vcell/cli/testsupport/fake_exec_summaries.ndjson new file mode 100644 index 0000000000..dc3789438c --- /dev/null +++ b/vcell-cli/src/test/resources/org/vcell/cli/testsupport/fake_exec_summaries.ndjson @@ -0,0 +1,50 @@ +{ "file_path": "/root/BIOMD0000000020.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000040.omex", "status": "FAILED", "failure_type": "SBML_IMPORT_FAILURE", "failure_desc": "Unable to initialize bioModel for the given selection: Failed to translate SBML model into BioModel: org.vcell.sbml.vcell.SBMLImportException: Non-numeric stoichiometry ('f' for product 'Br' in reaction 'Reaction5') not handled in VCell at this time. org.vcell.sbml.vcell.SBMLImportException: Failed to translate SBML model into BioModel: org.vcell.sbml.vcell.SBMLImportException: Non-numeric stoichiometry ('f' for product 'Br' in reaction 'Reaction5') not handled in VCell at this time.", "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000060.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000080.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000100.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000120.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000140.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000240.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000260.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000280.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000300.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000320.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000340.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000360.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000380.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000400.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000420.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000440.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000460.omex", "status": "FAILED", "failure_type": "SBML_IMPORT_FAILURE", "failure_desc": "Unable to initialize bioModel for the given selection: couldn't find SBase with sid=null in SBMLSymbolMapping org.vcell.sbml.vcell.SBMLImportException: couldn't find SBase with sid=null in SBMLSymbolMapping", "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000480.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000500.omex", "status": "FAILED", "failure_type": "UNCATETORIZED_FAULT", "failure_desc": "Unable to initialize bioModel for the given selection: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null java.lang.NullPointerException: Cannot invoke \"cbit.vcell.solver.Simulation.getImportedTaskID()\" because \"simulation\" is null", "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000520.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000540.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000560.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000580.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000600.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000620.omex", "status": "FAILED", "failure_type": "UNCATETORIZED_FAULT", "failure_desc": "Failed execution: Model 'BIOMD0000000620_BIOMD0000000620_url.sedml_BIOMD0000000620_url' Task 'task1'. java.lang.RuntimeException: Could not execute code: CVODE solver failed : at time 5.5, discontinuity (t == Anakinra_dose_counter) evaluated to TRUE, solver assumed FALSE\n\n\n\n(/usr/local/app/vcell/installDir/localsolvers/linux64/SundialsSolverStandalone_x64 /tmp/VCell_CLI_193e0a5db7a967308657490923326/BIOMD0000000620/BIOMD0000000620_url.sedml/SimID_411786192_0_.cvodeInput /tmp/VCell_CLI_193e0a5db7a967308657490923326/BIOMD0000000620/BIOMD0000000620_url.sedml/SimID_411786192_0_.ida) ", "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000640.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000660.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000680.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000700.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000720.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000740.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000760.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000780.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000800.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000820.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000840.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000860.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000880.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000900.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000920.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000940.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000960.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000000980.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000001000.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000001020.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000001040.omex", "status": "FAILED", "failure_type": "SBML_IMPORT_FAILURE", "failure_desc": "Unable to initialize bioModel for the given selection: Failed to translate SBML model into BioModel: Error binding global parameter 'Summary_flux_to_RBC' to model: 'Vin' is either not found in your model or is not allowed to be used in the current context. Check that you have provided the correct and full name (e.g. Ca_Cytosol). org.vcell.sbml.vcell.SBMLImportException: Failed to translate SBML model into BioModel: Error binding global parameter 'Summary_flux_to_RBC' to model: 'Vin' is either not found in your model or is not allowed to be used in the current context. Check that you have provided the correct and full name (e.g. Ca_Cytosol).", "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000001060.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } +{ "file_path": "/root/BIOMD0000001080.omex", "status": "PASSED", "failure_type": null, "failure_desc": null, "elapsed_time_ms": 1234 } diff --git a/vcell-cli/src/test/resources/org/vcell/cli/testsupport/fake_test_cases.ndjson b/vcell-cli/src/test/resources/org/vcell/cli/testsupport/fake_test_cases.ndjson new file mode 100644 index 0000000000..a392c626b3 --- /dev/null +++ b/vcell-cli/src/test/resources/org/vcell/cli/testsupport/fake_test_cases.ndjson @@ -0,0 +1,54 @@ +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000039.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000060.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000080.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000100.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000120.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000140.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000160.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000180.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000200.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000220.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000240.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000260.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000280.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000300.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000320.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000340.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000360.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000380.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000400.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000420.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000421.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000440.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000460.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000480.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000500.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000520.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000540.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000560.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000580.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000600.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000620.omex","should_fail":false,"known_status":null,"known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000640.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000660.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000680.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000700.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000720.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000740.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000760.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000780.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000800.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000820.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000840.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000860.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000880.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000900.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000920.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000940.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000960.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000000980.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001000.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001020.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001040.omex","should_fail":false,"known_status":"FAIL","known_failure_type":"DIVIDE_BY_ZERO","known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001060.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} +{"test_collection":"SYSBIO_BIOMD","file_path":"BIOMD0000001080.omex","should_fail":false,"known_status":"PASS","known_failure_type":null,"known_failure_desc":null} diff --git a/vcell-core/src/main/java/org/vcell/sedml/SEDMLImporter.java b/vcell-core/src/main/java/org/vcell/sedml/SEDMLImporter.java index ad2582cd1d..2a27d5a876 100644 --- a/vcell-core/src/main/java/org/vcell/sedml/SEDMLImporter.java +++ b/vcell-core/src/main/java/org/vcell/sedml/SEDMLImporter.java @@ -611,10 +611,9 @@ private Variable resolveMathVariable(SimulationContext importedSimContext, Simul private void addRepeatedTasks(List listOfTasks, Map vcSimulations) throws ExpressionException, PropertyVetoException, SEDMLImportException { for (AbstractTask abstractedRepeatedTask : listOfTasks) { - if (!(abstractedRepeatedTask instanceof RepeatedTask)) continue; + if (!(abstractedRepeatedTask instanceof RepeatedTask repeatedTask)) continue; - RepeatedTask repeatedTask = (RepeatedTask)abstractedRepeatedTask; - if (!repeatedTask.getResetModel() || repeatedTask.getSubTasks().size() != 1) { // if removed, see RunUtils.prepareNonspatialHdf5() + if (!repeatedTask.getResetModel() || repeatedTask.getSubTasks().size() != 1) { // if removed, see RunUtils.prepareNonspatialHdf5() logger.error("sequential RepeatedTask not yet supported, task "+SEDMLUtil.getName(abstractedRepeatedTask)+" is being skipped"); continue; } @@ -1097,27 +1096,24 @@ private boolean simulationIsNeededAsOutput(Simulation sim){ List reportList = new LinkedList<>(); for (Output output : this.sedml.getOutputs()){ - if (!(output instanceof Report)) continue; - reportList.add((Report)output); + if (!(output instanceof Report report)) continue; + reportList.add(report); } for (Report report : reportList){ Set neededTaskReferences = new HashSet<>(); for (DataSet ds : report.getListOfDataSets()){ for (DataGenerator dataGenerator : this.sedml.getDataGenerators()){ - if (ds.getDataReference().equals(dataGenerator.getId())){ - for (org.jlibsedml.Variable var : dataGenerator.getListOfVariables()){ - neededTaskReferences.add(var.getReference()); - } + if (!ds.getDataReference().equals(dataGenerator.getId())) continue; + for (org.jlibsedml.Variable var : dataGenerator.getListOfVariables()){ + neededTaskReferences.add(var.getReference()); } } } for (AbstractTask task : this.sedml.getTasks()){ - if ( - neededTaskReferences.contains(task.getId()) && - task.getId().equals(sim.getImportedTaskID()) - ) return true; + if (neededTaskReferences.contains(task.getId()) && task.getId().equals(sim.getImportedTaskID())) + return true; } } diff --git a/vcell-cli/src/main/java/org/vcell/cli/testsupport/FailureType.java b/vcell-core/src/main/java/org/vcell/sedml/testsupport/FailureType.java similarity index 97% rename from vcell-cli/src/main/java/org/vcell/cli/testsupport/FailureType.java rename to vcell-core/src/main/java/org/vcell/sedml/testsupport/FailureType.java index 4872d5b54e..55f8a5c120 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/testsupport/FailureType.java +++ b/vcell-core/src/main/java/org/vcell/sedml/testsupport/FailureType.java @@ -1,4 +1,4 @@ -package org.vcell.cli.testsupport; +package org.vcell.sedml.testsupport; @SuppressWarnings("unused") public enum FailureType { diff --git a/vcell-cli/src/main/java/org/vcell/cli/testsupport/OmexExecSummary.java b/vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexExecSummary.java similarity index 82% rename from vcell-cli/src/main/java/org/vcell/cli/testsupport/OmexExecSummary.java rename to vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexExecSummary.java index d8a8053fc4..b82c3ef37e 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/testsupport/OmexExecSummary.java +++ b/vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexExecSummary.java @@ -1,4 +1,4 @@ -package org.vcell.cli.testsupport; +package org.vcell.sedml.testsupport; public class OmexExecSummary { @@ -11,6 +11,7 @@ public enum ActualStatus { public ActualStatus status; public FailureType failure_type; public String failure_desc; + public long elapsed_time_ms; @Override public String toString() { @@ -19,6 +20,7 @@ public String toString() { ", status=" + status + ", failure_type=" + failure_type + ", failure_desc="+((failure_desc!=null)?('\'' + failure_desc + '\''):null) + + ", elapsed_time_ms=" + elapsed_time_ms + '}'; } } diff --git a/vcell-cli/src/main/java/org/vcell/cli/testsupport/OmexTestCase.java b/vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexTestCase.java similarity index 62% rename from vcell-cli/src/main/java/org/vcell/cli/testsupport/OmexTestCase.java rename to vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexTestCase.java index 6a1f44a3ce..52591dd799 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/testsupport/OmexTestCase.java +++ b/vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexTestCase.java @@ -1,4 +1,4 @@ -package org.vcell.cli.testsupport; +package org.vcell.sedml.testsupport; public class OmexTestCase { @@ -15,6 +15,18 @@ public enum Status { public FailureType known_failure_type; public String known_failure_desc; + public OmexTestCase(OmexTestingDatabase.TestCollection testCollection, String filePath, Boolean shouldFail, Status status, FailureType failureType, String failureDesc) { + this.test_collection = testCollection; + this.file_path = filePath; + this.should_fail = shouldFail; + this.known_status = status; + this.known_failure_type = failureType; + this.known_failure_desc = failureDesc; + } + + public OmexTestCase() { + } + @Override public String toString() { return "OmexTestCase{" + @@ -27,8 +39,4 @@ public String toString() { '}'; } - public boolean matchFileSuffix(String path) { - String fullPath = test_collection.pathPrefix + "/" + file_path; - return fullPath.endsWith(path); - } } diff --git a/vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexTestReport.java b/vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexTestReport.java new file mode 100644 index 0000000000..156538181a --- /dev/null +++ b/vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexTestReport.java @@ -0,0 +1,481 @@ +package org.vcell.sedml.testsupport; + + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.vcell.util.Pair; + +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + +public class OmexTestReport { + private final static Logger logger = LogManager.getLogger(OmexTestReport.class); + + public static class OmexTestCaseChange { + public final OmexTestCase original; + public final OmexTestCase updated; + + public OmexTestCaseChange(OmexTestCase original, OmexTestCase updated) { + this.original = original; + this.updated = updated; + } + + } + + public static class OmexTestStatistics { + public int testCaseCount; + public int testCaseFailCount; + public int testCasePassCount; + public int testCaseChangeCount; + public int unmatchedTestCaseCount; + public int unmatchedExecutionsCount; + public int failedExecutionsCount; + public int passedExecutionsCount; + public int totalExecutions; + } + + public final List testCaseChanges = new ArrayList<>(); + public final List unmatchedExecSummaries = new ArrayList<>(); + public final List unmatchedTestCases = new ArrayList<>(); + public final OmexTestStatistics statistics = new OmexTestStatistics(); + public final Map historicalFailureTypeCounts = new HashMap<>(); + public final Map currentFailureTypeCounts = new HashMap<>(); + + public OmexTestReport(List testCases, List execSummaries) { + // find common path prefix of list of Path objects + Path commonPrefix = PathUtils.findCommonPrefix(execSummaries.stream().map(tc -> Paths.get(tc.file_path)).toList()); + + unmatchedTestCases.addAll(testCases); + + for (OmexTestCase testCase : testCases) { + if (testCase.known_status != OmexTestCase.Status.FAIL) { + continue; + } + FailureType failureType = (testCase.known_failure_type != null) ? testCase.known_failure_type : FailureType.UNCATETORIZED_FAULT; + this.historicalFailureTypeCounts.put(failureType, this.historicalFailureTypeCounts.getOrDefault(failureType, 0) + 1); + } + + for (OmexExecSummary execSummary : execSummaries) { + // Collect Failure Types + if (execSummary.status == OmexExecSummary.ActualStatus.FAILED){ + FailureType failureType = (execSummary.failure_type != null) ? execSummary.failure_type : FailureType.UNCATETORIZED_FAULT; + this.currentFailureTypeCounts.put(failureType, this.currentFailureTypeCounts.getOrDefault(failureType, 0) + 1); + } + + // find matching test case + List matchingTestCases = OmexTestingDatabase.queryOmexTestCase(testCases, Paths.get(execSummary.file_path), commonPrefix); + if (matchingTestCases.isEmpty()) { + System.out.println("No test case found for: " + execSummary.file_path); + unmatchedExecSummaries.add(execSummary); + continue; + } + if (matchingTestCases.size()>1){ + throw new RuntimeException("Multiple test cases "+matchingTestCases+" found for: " + execSummary.file_path); + } + OmexTestCase matchingTestCase = matchingTestCases.get(0); + unmatchedTestCases.remove(matchingTestCase); + + // Compare Historical to Current + OmexTestCase updatedTestCase = null; + if (execSummary.status == OmexExecSummary.ActualStatus.PASSED){ + if (matchingTestCase.known_status == OmexTestCase.Status.FAIL || matchingTestCase.known_status == OmexTestCase.Status.SKIP || matchingTestCase.known_status == null) { + System.out.println("Test case marked as FAIL or SKIP, type="+matchingTestCase.known_failure_type+", but passed: " + execSummary.file_path); + updatedTestCase = new OmexTestCase(matchingTestCase.test_collection, matchingTestCase.file_path, + matchingTestCase.should_fail, OmexTestCase.Status.PASS, null, null); + } + } + if (execSummary.status == OmexExecSummary.ActualStatus.FAILED){ + if (matchingTestCase.known_status == OmexTestCase.Status.PASS || matchingTestCase.known_status == null) { + System.out.println("Test case marked as "+matchingTestCase.known_status+", but failed "+execSummary.failure_type+": "+execSummary.failure_desc+", "+execSummary.file_path); + updatedTestCase = new OmexTestCase(matchingTestCase.test_collection, matchingTestCase.file_path, + matchingTestCase.should_fail, OmexTestCase.Status.FAIL, + execSummary.failure_type, execSummary.failure_desc); + } else if (matchingTestCase.known_status == OmexTestCase.Status.SKIP) { + System.out.println("Test case marked as SKIP and failed with "+execSummary.failure_type+": "+execSummary.failure_desc+", "+execSummary.file_path); + updatedTestCase = new OmexTestCase(matchingTestCase.test_collection, matchingTestCase.file_path, + matchingTestCase.should_fail, OmexTestCase.Status.SKIP, + execSummary.failure_type, execSummary.failure_desc); + } else if (matchingTestCase.known_status == OmexTestCase.Status.FAIL) { + if (matchingTestCase.known_failure_type == null || !matchingTestCase.known_failure_type.equals(execSummary.failure_type)) { + System.out.println("Test case marked as FAIL with different type "+matchingTestCase.known_failure_type+", but failed with "+execSummary.failure_type+": "+execSummary.failure_desc+", "+execSummary.file_path); + updatedTestCase = new OmexTestCase(matchingTestCase.test_collection, matchingTestCase.file_path, + matchingTestCase.should_fail, OmexTestCase.Status.FAIL, + execSummary.failure_type, execSummary.failure_desc); + } + } + } + if (updatedTestCase != null) { + testCaseChanges.add(new OmexTestCaseChange(matchingTestCase, updatedTestCase)); + } + } + statistics.testCaseCount = testCases.size(); + statistics.testCasePassCount = (int) testCases.stream().filter(tc -> tc.known_status == OmexTestCase.Status.PASS).count(); + statistics.testCaseFailCount = (int) testCases.stream().filter(tc -> tc.known_status == OmexTestCase.Status.FAIL).count(); + statistics.totalExecutions = execSummaries.size(); + statistics.failedExecutionsCount = (int) execSummaries.stream().filter(s -> s.status == OmexExecSummary.ActualStatus.FAILED).count(); + statistics.passedExecutionsCount = (int) execSummaries.stream().filter(s -> s.status == OmexExecSummary.ActualStatus.PASSED).count(); + statistics.testCaseChangeCount = testCaseChanges.size(); + statistics.unmatchedTestCaseCount = unmatchedTestCases.size(); + statistics.unmatchedExecutionsCount = unmatchedExecSummaries.size(); + } + + // find test cases which were not run, they don't have execSummaries + public List findUnexecutedTestCases() { + return unmatchedTestCases; + } + + // find execSummaries which don't have matching test cases + public List findUnmatchedExecSummaries() { + return unmatchedExecSummaries; + } + + // find test cases which should be updated + public List findTestCaseChanges() { + return testCaseChanges; + } + + public OmexTestStatistics getStatistics() { + return statistics; + } + + public String toJson() { + ObjectMapper objectMapper = new ObjectMapper(); + try { + return objectMapper.writeValueAsString(this); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public String toYaml() { + ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory()); + try { + return objectMapper.writeValueAsString(this); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public String toMarkdown() throws JsonProcessingException { + MarkdownTable resultsStatistics = OmexTestReport.generateResultStatistics(this.statistics); + MarkdownTable errorTypeStatistics = OmexTestReport.generateErrorTypeStatistics(this.historicalFailureTypeCounts, this.currentFailureTypeCounts); + MarkdownTable incomparableStatistics = OmexTestReport.generateIncomparableStatistics(this.statistics, this.unmatchedTestCases, this.unmatchedExecSummaries); + MarkdownTable unmatchedResultStatistics = OmexTestReport.generateUnmatchedResultStatistics(this.testCaseChanges); + + StringBuilder sb = new StringBuilder(); + sb.append("# Test Report\n"); + sb.append("## Results Statistics:\n"); + sb.append(resultsStatistics.getMarkdownTable()).append("\n"); + sb.append("## Error Type Statistics:\n"); + sb.append(errorTypeStatistics.getMarkdownTable()).append("\n"); + + if (this.statistics.unmatchedExecutionsCount > 0 || this.statistics.unmatchedTestCaseCount > 0 ) + sb.append("## Incomparable Results Statistics:\n").append(incomparableStatistics.getMarkdownTable()).append("\n"); + if (!this.testCaseChanges.isEmpty()) + sb.append("## Unmatched Results Statistics:\n").append(unmatchedResultStatistics.getMarkdownTable()).append("\n"); + return sb.toString(); + } + + private static MarkdownTable generateResultStatistics(OmexTestStatistics statistics){ + MarkdownTable resultStatistics = new MarkdownTable(); + resultStatistics.resizeRowAndColumnLabels(4, 2); + resultStatistics.setColumnTitle(0, "Historical"); + resultStatistics.setColumnTitle(1, "Current"); + resultStatistics.setRowTitle(0, "Passes"); + resultStatistics.setRowTitle(1, "Failures"); + resultStatistics.setRowTitle(2, "Unknown"); + resultStatistics.setRowTitle(3, "Total"); + resultStatistics.setTableValue(0,0, statistics.testCasePassCount); + resultStatistics.setTableValue(1,0, statistics.testCaseFailCount); + resultStatistics.setTableValue(2,0, statistics.testCaseCount - (statistics.testCaseFailCount + statistics.testCasePassCount)); + resultStatistics.setTableValue(3,0, statistics.testCaseCount); + resultStatistics.setTableValue(0,1, statistics.passedExecutionsCount); + resultStatistics.setTableValue(1,1, statistics.failedExecutionsCount); + resultStatistics.setTableValue(2,1, "---"); + resultStatistics.setTableValue(3,1, statistics.totalExecutions); + return resultStatistics; + } + + private static MarkdownTable generateErrorTypeStatistics(Map historicalFailures, + Map currentFailures){ + MarkdownTable errorTypeStatistics = new MarkdownTable(); + List>> failureTypeList = OmexTestReport.getFailureTypePairings(historicalFailures, currentFailures); + + errorTypeStatistics.resizeRowAndColumnLabels(failureTypeList.size(), 2); + errorTypeStatistics.setColumnTitle(0, "Historical"); + errorTypeStatistics.setColumnTitle(1, "Current"); + for (int i = 0; i < failureTypeList.size(); i++){ + Pair> pairing = failureTypeList.get(i); + errorTypeStatistics.setRowTitle(i, pairing.one.toString()); + errorTypeStatistics.setTableValue(i, 0, pairing.two.one); + errorTypeStatistics.setTableValue(i, 1, pairing.two.two); + } + return errorTypeStatistics; + } + + private static List>> getFailureTypePairings(Map historicalFailures, + Map currentFailures){ + Set encounteredErrorTypes = new HashSet<>(historicalFailures.keySet()); + encounteredErrorTypes.addAll(currentFailures.keySet()); + List>> failureTypeList = new ArrayList<>(); + for (FailureType type : FailureType.values()){ // We want to + if (!encounteredErrorTypes.contains(type)) continue; + Pair historicalAndCurrentCount = new Pair<>( + historicalFailures.getOrDefault(type, 0), + currentFailures.getOrDefault(type, 0) + ); + failureTypeList.add(new Pair<>(type, historicalAndCurrentCount)); + } + return failureTypeList; + } + + private static MarkdownTable generateIncomparableStatistics(OmexTestStatistics statistics, + List unmatchedTestCases, + List unmatchedExecSummaries){ + MarkdownTable incomparableStatistics = new MarkdownTable(); + int allUnmatched = statistics.unmatchedTestCaseCount + statistics.unmatchedExecutionsCount; + incomparableStatistics.resizeRowAndColumnLabels(allUnmatched, 2); + incomparableStatistics.setColumnTitle(0, "Historically Ran"); + incomparableStatistics.setColumnTitle(1, "Currently Ran"); + Map nameToIfHistoricalMap = new HashMap<>(); + if (statistics.unmatchedTestCaseCount > 0) for (OmexTestCase testCase : unmatchedTestCases){ + nameToIfHistoricalMap.put(testCase.file_path, true); + } + if (statistics.unmatchedExecutionsCount > 0) for (OmexExecSummary execSummary : unmatchedExecSummaries){ + nameToIfHistoricalMap.put(execSummary.file_path, false); + } + List unmatchedNames = new ArrayList<>(nameToIfHistoricalMap.keySet()); + unmatchedNames.sort(Comparator.naturalOrder()); + for (int i = 0; i < unmatchedNames.size(); i++){ + String name = unmatchedNames.get(i); + incomparableStatistics.setRowTitle(i, name); + // We want to put a checkmark in the correct column, based on which actually ran the test + int matchedColumn = nameToIfHistoricalMap.get(name) ? 0 : 1; + incomparableStatistics.setTableValue(i, matchedColumn, "✔"); + incomparableStatistics.setTableValue(i, 1 - matchedColumn, "❌"); + } + return incomparableStatistics; + } + + private static MarkdownTable generateUnmatchedResultStatistics(List testCaseChanges){ + MarkdownTable unmatchedResultStatistics = new MarkdownTable(); + unmatchedResultStatistics.resizeRowAndColumnLabels(testCaseChanges.size(), 2); + unmatchedResultStatistics.setColumnTitle(0, "Historical"); + unmatchedResultStatistics.setColumnTitle(1, "Current"); + for (int i = 0; i < testCaseChanges.size(); i++){ + OmexTestCaseChange testCaseChange = testCaseChanges.get(i); + unmatchedResultStatistics.setRowTitle(i, testCaseChange.original.file_path); + + String historicalResult = switch (testCaseChange.original.known_status){ + case PASS: + yield "PASSED"; + case SKIP: + yield "SKIPPED"; + case FAIL: + yield String.format("FAILED (%s)", testCaseChange.original.known_failure_type.name()); + }; + unmatchedResultStatistics.setTableValue(i, 0, historicalResult); + + String currentResult = switch (testCaseChange.updated.known_status){ + case PASS: + yield "PASSED"; + case SKIP: + yield "SKIPPED"; + case FAIL: + yield String.format("FAILED (%s)", testCaseChange.original.known_failure_type.name()); + }; + unmatchedResultStatistics.setTableValue(i, 1, currentResult); + } + return unmatchedResultStatistics; + } + + public static class MarkdownTable { + private String[] rowTitles, columnTitles; + private String[] values; + + public MarkdownTable(){ + this.rowTitles = new String[0]; this.columnTitles = new String[0]; + this.values = new String[0]; + } + + /** + * Retrieves the value at the target coordinate. + * Throws IllegalArgumentException if request would cause an IndexOutOfBounds exception. + * @param row the row index to look-up + * @param column the column index to look-up + * @return the value in the table, as a String. + */ + public String getTableValue(int row, int column){ + if (row >= this.rowTitles.length) throw new IllegalArgumentException(String.format("Row index `%d` is out of bounds (size: %d)", row, this.rowTitles.length)); + if (column >= this.columnTitles.length) throw new IllegalArgumentException(String.format("Column index `%d` is out of bounds (size: %d)", column, this.columnTitles.length)); + return this.values[row * this.columnTitles.length + column]; + } + + /** + * Sets the value at the target coordinate. Converts from whatever type provided into a String. + * Throws IllegalArgumentException if request would cause an IndexOutOfBounds exception. + * @param row the row index to apply to + * @param column the column index to apply to + * @return the previous value stored at the target coordinate. + */ + public String setTableValue(int row, int column, Object value){ + // Validate row / column pair + if (row >= this.rowTitles.length) throw new IllegalArgumentException(String.format("Row index `%d` is out of bounds (size: %d)", row, this.rowTitles.length)); + if (column >= this.columnTitles.length) throw new IllegalArgumentException(String.format("Column index `%d` is out of bounds (size: %d)", column, this.columnTitles.length)); + + // Maybe save some time. + if (Objects.equals(value, this.values[row * this.columnTitles.length + column])) return (String)value; + // Convert value to String. + String newValue; + // Organize by likely-hood of being passed for efficiency + if (value instanceof String stringValue) newValue = stringValue; + else if (value instanceof Double doubleValue) newValue = Double.toString(doubleValue); + else if (value instanceof Integer integerValue) newValue = Integer.toString(integerValue); + else if (value instanceof Long longValue) newValue = Long.toString(longValue); + else if (value instanceof Float floatValue) newValue = Float.toString(floatValue); + else if (value instanceof Boolean booleanValue) newValue = booleanValue ? "true" : "false"; + else if (value instanceof Byte byteValue) newValue = String.format("0x%02X", byteValue); + else if (value instanceof Short shortValue) newValue = Short.toString(shortValue); + else if (value instanceof Character charValue) newValue = Character.toString(charValue); + else if (value == null) newValue = ""; + else newValue = value.toString(); + + // Do the swap! + String oldValue = this.values[row * this.columnTitles.length + column]; + this.values[row * this.columnTitles.length + column] = newValue; + return oldValue; + } + + public void setNumRows(int number){ + if (number == this.rowTitles.length) return; + this.resizeRowLabels(number); + } + + public void setNumColumns(int number){ + if (number == this.columnTitles.length) return; + this.resizeColumnLabels(number); + } + + public void setNumRowsAndColums(int rowNumber, int colNumber){ + if (rowNumber == this.rowTitles.length && colNumber == this.columnTitles.length) return; + this.resizeRowAndColumnLabels(rowNumber, colNumber); + } + + public void setRowTitle(int rowIndex, String title) { + if (rowIndex >= this.rowTitles.length) this.resizeRowLabels(rowIndex + 1); + this.rowTitles[rowIndex] = title; + } + + public void setColumnTitle(int colIndex, String title) { + if (colIndex >= this.columnTitles.length) this.resizeColumnLabels(colIndex + 1); + this.columnTitles[colIndex] = title; + } + + public String getMarkdownTable(){ + Map maxLengthInColumn = new HashMap<>(); + for (int i = 0; i < this.columnTitles.length + 1; i ++) maxLengthInColumn.put(i, 0); + String[][] elementMapping = new String[this.rowTitles.length + 2][this.columnTitles.length + 1]; + for (int rowIndex = -2; rowIndex < this.rowTitles.length; rowIndex++){ + for (int colIndex = -1; colIndex < this.columnTitles.length; colIndex++){ + if (rowIndex == -2){ + if (colIndex == -1){ + elementMapping[0][0] = " "; // We do three spaces to make sure the min-width is 3; needed for the header line! + maxLengthInColumn.put(0, 3); + continue; // Top left should be empty! + } + elementMapping[0][colIndex + 1] = this.columnTitles[colIndex]; + if (this.columnTitles[colIndex].length() > maxLengthInColumn.get(colIndex + 1)) + maxLengthInColumn.put(colIndex + 1, this.columnTitles[colIndex].length()); + continue; + } else if (rowIndex == -1){ + elementMapping[1][colIndex + 1] = "-"; + // We know the maxLength in any column will be 3 or greater, so don't bother checking... + continue; + } + // Now we process "normal" rows + if (colIndex == -1){ + elementMapping[rowIndex + 2][0] = this.rowTitles[rowIndex]; + if (this.rowTitles[rowIndex].length() > maxLengthInColumn.get(0)) + maxLengthInColumn.put(0, this.rowTitles[rowIndex].length()); + continue; + } + // This should be an element in the table! + String tableValue = this.getTableValue(rowIndex, colIndex); + elementMapping[rowIndex + 2][colIndex + 1] = tableValue; + if (tableValue.length() > maxLengthInColumn.get(colIndex + 1)) + maxLengthInColumn.put(colIndex + 1, tableValue.length()); + } + } + // We've completed our parsing, now let's build the table + StringBuilder tableBuilder = new StringBuilder(); + for (String[] row : elementMapping){ + tableBuilder.append("|"); + for (int colIndex = 0; colIndex < row.length; colIndex++){ + String rawValue = row[colIndex]; + if ("-".equals(rawValue)){ + String headerLine = rawValue.repeat(maxLengthInColumn.get(colIndex)); + tableBuilder.append(":").append(headerLine).append(":|"); + continue; + } + int numRepeats = maxLengthInColumn.get(colIndex) - rawValue.length(); + tableBuilder.append(" ").append(rawValue).append(" ".repeat(numRepeats)).append(" |"); + } + tableBuilder.append("\n"); + } + return tableBuilder.toString(); + } + + private void resizeRowLabels(int newSize){ + if (newSize == this.rowTitles.length) return; + int oldRowSize = this.rowTitles.length; + String[] newRowTitles = new String[newSize]; + System.arraycopy(this.rowTitles, 0, newRowTitles, 0, java.lang.Math.min(this.rowTitles.length, newSize)); + this.rowTitles = newRowTitles; + scaleTableValues(oldRowSize, this.columnTitles.length); // We've changed table dimensions; need to scale! + } + + private void resizeColumnLabels(int newSize){ + if (newSize == this.columnTitles.length) return; + int oldColumnSize = this.columnTitles.length; + String[] newColumnTitles = new String[newSize]; + System.arraycopy(this.columnTitles, 0, newColumnTitles, 0, java.lang.Math.min(this.columnTitles.length, newSize)); + this.columnTitles = newColumnTitles; + scaleTableValues(this.rowTitles.length, oldColumnSize); // We've changed table dimensions; need to scale! + } + + private void resizeRowAndColumnLabels(int newRowSize, int newColumnSize){ + if (newRowSize == this.rowTitles.length && newColumnSize == this.columnTitles.length) return; + int oldRowSize = this.rowTitles.length, oldColumnSize = this.columnTitles.length; + String[] newRowTitles = new String[newRowSize]; + String[] newColumnTitles = new String[newColumnSize]; + System.arraycopy(this.rowTitles, 0, newRowTitles, 0, java.lang.Math.min(this.rowTitles.length, newRowSize)); + System.arraycopy(this.columnTitles, 0, newColumnTitles, 0, java.lang.Math.min(this.columnTitles.length, newColumnSize)); + this.rowTitles = newRowTitles; + this.columnTitles = newColumnTitles; + scaleTableValues(oldRowSize, oldColumnSize); // We've changed table dimensions; need to scale! + } + + + /** + * Since we track the table dimensions using the size of the label arrays, this method needs to be called after + * label arrays have been modified; which in practice is actually sensible and useful. + */ + private void scaleTableValues(int oldRowLength, int oldColumnLength){ + String[] newValues = new String[this.rowTitles.length * this.columnTitles.length]; + if (oldRowLength > this.rowTitles.length || oldColumnLength > this.columnTitles.length) + if (logger.isDebugEnabled()) logger.warn("Downscaling of table; some data may be lost!"); + int safeRowLength = java.lang.Math.min(this.rowTitles.length, oldRowLength); + int safeColumnLength = java.lang.Math.min(this.columnTitles.length, oldColumnLength); + for (int rowIter = 0; rowIter < safeRowLength; rowIter++){ + System.arraycopy(this.values, rowIter * oldColumnLength, newValues, rowIter * this.columnTitles.length, safeColumnLength); + } + this.values = newValues; + } + } + + +} diff --git a/vcell-cli/src/main/java/org/vcell/cli/testsupport/OmexTestingDatabase.java b/vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexTestingDatabase.java similarity index 75% rename from vcell-cli/src/main/java/org/vcell/cli/testsupport/OmexTestingDatabase.java rename to vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexTestingDatabase.java index d11c3840b5..ced8e4a0af 100644 --- a/vcell-cli/src/main/java/org/vcell/cli/testsupport/OmexTestingDatabase.java +++ b/vcell-core/src/main/java/org/vcell/sedml/testsupport/OmexTestingDatabase.java @@ -1,4 +1,4 @@ -package org.vcell.cli.testsupport; +package org.vcell.sedml.testsupport; import cbit.vcell.mapping.MappingException; import com.fasterxml.jackson.databind.MappingIterator; @@ -6,13 +6,14 @@ import org.vcell.sbml.vcell.SBMLImportException; import org.vcell.trace.Span; import org.vcell.trace.TraceEvent; -import org.vcell.trace.Tracer; import java.io.*; import java.nio.file.FileAlreadyExistsException; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; public class OmexTestingDatabase { @@ -20,10 +21,12 @@ public enum TestDataRepo { vcell, sysbio } public enum TestCollection { + VCELL_QUANT_OMEX(TestDataRepo.vcell, "vcell-cli/src/test/resources/OmexWithThirdPartyResults"), VCELL_BIOMD(TestDataRepo.vcell, "vcell-cli/src/test/resources/bsts-omex/misc-projects"), VCELL_BSTS_VCML(TestDataRepo.vcell, "vcell-cli/src/test/resources/bsts-omex/vcml"), VCELL_BSTS_SBML_CORE(TestDataRepo.vcell, "vcell-cli/src/test/resources/bsts-omex/sbml-core"), VCELL_BSTS_SYNTHS(TestDataRepo.vcell, "vcell-cli/src/test/resources/bsts-omex/synths"), + VCELL_SPATIAL(TestDataRepo.vcell, "vcell-cli/src/test/resources/spatial"), SYSBIO_BIOMD(TestDataRepo.sysbio, "omex_files"); public final TestDataRepo repo; @@ -35,16 +38,19 @@ public enum TestCollection { } } - public static List queryOmexTestCase(List omexTestCases, String path) { - return omexTestCases.stream().filter(tc -> tc.matchFileSuffix(path)).toList(); + public static List queryOmexTestCase(List omexTestCases, Path path, Path commonPrefix) { + if (commonPrefix != null){ + path = path.subpath(commonPrefix.getNameCount(), path.getNameCount()); + } + final Path finalPath = path; + return omexTestCases.stream().filter(tc -> { + Path fullPath = Paths.get(tc.test_collection.pathPrefix, tc.file_path); + return fullPath.endsWith(finalPath); + }).toList(); } - public String generateReport(List omexTestCases, List execSummaries) { - StringBuilder report = new StringBuilder(); - for (OmexTestCase testCase : omexTestCases) { - report.append(testCase.toString()).append("\n"); - } - return report.toString(); + public static OmexTestReport generateReport(List omexTestCases, List execSummaries) { + return new OmexTestReport(omexTestCases, execSummaries); } public static List loadOmexExecSummaries(String execSummariesNdjson) throws IOException { @@ -61,28 +67,30 @@ public static List loadOmexExecSummaries(String execSummariesNd // read a newline-delimited json file into a list of OmexTextCase objects public static List loadOmexTestCases() throws IOException { - List testCases = new ArrayList<>(); String fileName = "test_cases.ndjson"; + try (InputStream inputStream = OmexTestingDatabase.class.getResourceAsStream("/"+fileName); + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))){ + String testCasesNdjson = reader.lines().collect(Collectors.joining(System.lineSeparator())); + return parseOmexTestCases(testCasesNdjson); + } + } + + public static List parseOmexTestCases(String testCasesNdjson) throws IOException { + List testCases = new ArrayList<>(); ObjectMapper objectMapper = new ObjectMapper(); - try (InputStream inputStream = OmexTestingDatabase.class.getResourceAsStream("/"+fileName);){ - if (inputStream == null) { - throw new FileNotFoundException("file not found! " + fileName); - } - try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { - try (MappingIterator it = objectMapper.readerFor(OmexTestCase.class).readValues(reader)) { - while (it.hasNext()) { - testCases.add(it.next()); - } - } + try (MappingIterator it = objectMapper.readerFor(OmexTestCase.class).readValues(testCasesNdjson)) { + while (it.hasNext()) { + testCases.add(it.next()); } } return testCases; } - public static OmexExecSummary summarize(File inputFilePath, Exception exception, List errorEvents) { + public static OmexExecSummary summarize(File inputFilePath, Exception exception, List errorEvents, long elapsedTime_ms) { OmexExecSummary execSummary = new OmexExecSummary(); execSummary.file_path = inputFilePath.toString(); execSummary.status = OmexExecSummary.ActualStatus.FAILED; + execSummary.elapsed_time_ms = elapsedTime_ms; if (exception != null || !errorEvents.isEmpty()) { execSummary.failure_type = determineFault(exception, errorEvents); execSummary.failure_desc = null; @@ -97,10 +105,7 @@ public static OmexExecSummary summarize(File inputFilePath, Exception exception, } public static FailureType determineFault(Exception caughtException, List errorEvents){ // Throwable because Assertion Error - String errorMessage = ""; - if (caughtException != null) { - errorMessage = caughtException.getMessage(); - } + String errorMessage = caughtException == null ? "" : caughtException.getMessage(); if (errorMessage.contains("refers to either a non-existent model")) { //"refers to either a non-existent model (invalid SED-ML) or to another model with changes (not supported yet)" return FailureType.SEDML_UNSUPPORTED_MODEL_REFERENCE; @@ -139,5 +144,4 @@ public static FailureType determineFault(Exception caughtException, List paths) { + System.out.println(paths.get(0).subpath(0, 1)); + if (paths == null || paths.isEmpty()) { + return null; + } + + Path commonPrefix = paths.get(0); + + for (Path path : paths) { + commonPrefix = findCommonPrefix(commonPrefix, path); + if (commonPrefix == null) { + break; + } + } + + return commonPrefix; + } + + private static Path findCommonPrefix(Path path1, Path path2) { + int minLength = Math.min(path1.getNameCount(), path2.getNameCount()); + Path commonPrefix = path1.getRoot(); + + for (int i = 0; i < minLength; i++) { + if (path1.getName(i).equals(path2.getName(i))) { + if (commonPrefix == null) { + commonPrefix = path1.getName(i); + } else { + commonPrefix = commonPrefix.resolve(path1.getName(i)); + } + } else { + break; + } + } + + return commonPrefix; + } +} diff --git a/vcell-core/src/test/java/org/vcell/sbml/SEDMLExporterCommon.java b/vcell-core/src/test/java/org/vcell/sbml/SEDMLExporterCommon.java index 78ad789ece..2641decf6e 100644 --- a/vcell-core/src/test/java/org/vcell/sbml/SEDMLExporterCommon.java +++ b/vcell-core/src/test/java/org/vcell/sbml/SEDMLExporterCommon.java @@ -6,7 +6,6 @@ import cbit.vcell.mapping.SimulationContext; import cbit.vcell.math.MathCompareResults; import cbit.vcell.math.MathDescription; -import cbit.vcell.resource.NativeLib; import cbit.vcell.resource.PropertyLoader; import cbit.vcell.solver.MathOverrides; import cbit.vcell.solver.Simulation;