Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
This file shows the types of checks that we perform and the types of error messages that we can report.
package edu.illinois.vlsicad.tests
import edu.illinois.vlsicad.core.FileFormatChecker
import edu.illinois.vlsicad.core.URPException
class FileFormatCheckerTest extends GroovyTestCase {
void testValidFile() {
// Should not have any exceptions thrown
FileFormatChecker checker = new FileFormatChecker(file: new File("test3.cubes"))
checker.checkFileFormat()
}
void testInvalidFirstLineFile() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("invalidFirstLine.cubes"))
checker.checkFileFormat()
}
assert 'Line #1 (i.e., expected number of variables) is not a number.' == msg
}
void testInvalidFirstLineFile_lessThan1() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("invalidFirstLineLessThan1.cubes"))
checker.checkFileFormat()
}
assert 'Line #1 (i.e., expected number of variables) needs to be > 0. Saw 0 instead.' == msg
}
void testInvalidSecondLine() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("invalidSecondLine.cubes"))
checker.checkFileFormat()
}
assert 'Line #2 (i.e., number of cubes) is not a number.' == msg
}
void testInvalidSecondLine_lessThan1() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("invalidSecondLineLessThan1.cubes"))
checker.checkFileFormat()
}
assert 'Line #2 (i.e., number of cubes) needs to be > 0. Saw 0 instead.' == msg
}
void testExtraWhiteSpaceLines() {
FileFormatChecker checker = new FileFormatChecker(file: new File("extraWhiteSpaceLines.cubes"))
checker.checkFileFormat()
}
void testExtraNonWhiteSpaceLines() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("extraNonWhitespaceLines.cubes"))
checker.checkFileFormat()
}
assert 'Some non-whitespace data still remain in the file after reading the list of cubes.' == msg
}
void testInvalidFirstCharOfCube() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("invalidFirstCharOfCube.cubes"))
checker.checkFileFormat()
}
assert 'First value of line #4 is not a number. Saw % but expected a number.' == msg
}
void testInvalidFirstCharOfCube_lessThan1() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("invalidFirstCharOfCubeLessThan1.cubes"))
checker.checkFileFormat()
}
assert 'Line #4 contains an invalid number of variables. Saw 0 but expected >= 0.' == msg
}
void testCubeContainsMoreVariables() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("cubeContainsMoreVariables.cubes"))
checker.checkFileFormat()
}
assert 'The line #4 contains more/less variables than expected. Saw 2 but expected 1.' == msg
}
void testCubeContainsLessVariables() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("cubeContainsLessVariables.cubes"))
checker.checkFileFormat()
}
assert 'The line #4 contains more/less variables than expected. Saw 2 but expected 3.' == msg
}
void testCubeContainsVariablesNotInRangeOver() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("cubeContainsVariablesNotInRangeOver.cubes"))
checker.checkFileFormat()
}
assert 'Line #4 contains some variables that are not within the range (1..2). Saw [3].' == msg
}
void testCubeContainsVariablesNotInRangeUnder() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("cubeContainsVariablesNotInRangeUnder.cubes"))
checker.checkFileFormat()
}
assert 'Line #4 contains some variables that are not within the range (1..2). Saw [0].' == msg
}
void testCubeContainsVariablesNotInRange() {
def msg = shouldFail(URPException) {
FileFormatChecker checker = new FileFormatChecker(file: new File("cubeContainsVariablesNotInRange.cubes"))
checker.checkFileFormat()
}
assert 'Line #4 contains some variables that are not within the range (1..2). Saw [3, 4].' == msg
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.