Looking for the documentation? Download it here.

SoluCheck is my very first real "Program" - it has an installer, a GUI, and is extraordinarily user friendly. It's created entirely in MATLAB®, and uses MATLAB®'s GUI elements.

History

SoluCheck was started from a desire to be lazy. For CS 1371 (A class which I now TA for), we have to create code that will, theoretically, solve a given problem for any starting conditions. These starting conditions are given as inputs to MATLAB® functions, or as external files (i.e., text files, image files, etc.).

The Beginning

Originally a command-line utility, it consisted of one function - Solver - that took in a function name (as a string), a "number of iterations" (how many times solver would test the function), and a variable number of arguments - arguments that specify the starting argument and the "step size" for that argument. Basically, solver would increment the argument by its step size each successive iteration. This was clunky, to say the least, and for a large number of arguments, would quickly go out of hand with number of arguments. Indeed, the first solver didn't even work!

A Second Attempt

Still a command-line utility, this time the solver at least worked... but only for numbers. Characters caused the solver to straight up die, and error checking? Look who's asking for the moon.

Yet Another Attempt

Now this time, there was no real "hot new thing" - it was just bug fixes. It was becoming clear at this point that a GUI would be almost a requirement - the argument entry was becoming nightmarish!

A GUI Rises

This is it. The beginning of SoluCheck, SoluWare (The "parent company" responsible for SoluCheck - I had my head in the clouds). The world's first (and still only!) GUI that will programmatically check homework for a variety of test cases. Mind you, there are still some problems. The business logic and presentation logic are still combined - not good for any product, and there are still a variety of arguments not testable. But it's a start.

Modern Times

Now, SoluCheck is at the forefront of MATLAB® function testing. Almost a testing framework, but made for programmers just getting used to MATLAB®, but useful for experienced Programmers as well.

Features

SoluCheck has a multitude of features that help the average MATLAB® programmer test and debug code. Features include:

  • Ability to arbitrarily test any number of arguments, any number of times
  • User has easy-to-use options that allow image testing, plot testing, and file testing, in addition to testing normal outputs
  • As opposed to normal testing procedures, SoluCheck will, by default, treat identical errors as success, since if both the function and solution error, that is success!
  • Advanced options allow user to precisely tune SoluCheck to their precise needs

As noted above, SoluCheck has a variety of advanced options, detailed below:

Notifications

Need to head out? Have SoluCheck email you the results of your test, viewable from anywhere .mat files are supported!

Performance

Does your code run slowly? Or quickly? See how it stacks up against the solution file with timing and code performance analysis. See exactly what's slowing you down, and graph timing information over the entire set of iterations.

Auditing

Don't believe the solution code is right? Audit instead, and see how many times your function agrees with the solution, and, for where they differ, know how and why, with input and output information.

Files

Need to test contents of text files? Use the File Comparison Tool to automatically include files as outputs.

Images

Do you need to check images? Use the Image Comparison Tool, which has built-in tolerance that has been verified as identical to that of the autograder.

Plots

Need to check plot outputs? SoluCheck's Plot Compare Tool will inform you of the average "plot difference" (% difference between plots).

Loading & Custom arguments

Need to fine-tune your input arguments? Simply create custom input scripts that output the new input argument and run in a sandboxed state. Need to include variables, but don't want their value to be overwritten? Just load a custom .MAT file using the Variable Loader.

Variable I/O

Does your function support
varargin
and/or
varargout
parameters? Test the function using SoluCheck's built-in variable I/O support.

Automation

Have a database of tests you'd like to perform? Import them with the Automation module of SoluCheck.