Clean up the scanner type test
This commit is contained in:
		
							parent
							
								
									8a970b6797
								
							
						
					
					
						commit
						d376c30d7a
					
				@ -1,12 +1,11 @@
 | 
				
			|||||||
package scanner
 | 
					package scanner
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import error.Severity.ERROR
 | 
					import org.assertj.core.api.Assertions.assertThat
 | 
				
			||||||
import org.junit.Assert.assertEquals
 | 
					import org.junit.jupiter.api.Assertions.assertThrows
 | 
				
			||||||
import org.junit.Assert.assertNotNull
 | 
					import org.junit.jupiter.api.BeforeEach
 | 
				
			||||||
import org.junit.Assert.assertTrue
 | 
					import org.junit.jupiter.api.Test
 | 
				
			||||||
import org.junit.Before
 | 
					 | 
				
			||||||
import org.junit.Test
 | 
					 | 
				
			||||||
import scanner.LispScanner.UnterminatedStringException
 | 
					import scanner.LispScanner.UnterminatedStringException
 | 
				
			||||||
 | 
					import testutil.TestUtilities.assertIsErrorWithMessage
 | 
				
			||||||
import testutil.TestUtilities.createInputStreamFromString
 | 
					import testutil.TestUtilities.createInputStreamFromString
 | 
				
			||||||
import token.AtSign
 | 
					import token.AtSign
 | 
				
			||||||
import token.Backquote
 | 
					import token.Backquote
 | 
				
			||||||
@ -23,156 +22,127 @@ import token.TokenFactory.BadCharacterException
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class LispScannerTypeTest {
 | 
					class LispScannerTypeTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private var expectedTypes: MutableList<Class<out Token>>? = null
 | 
					    private val expectedTypes = mutableListOf<Class<out Token>>()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun assertTokenTypesMatch(input: String) {
 | 
					    private fun assertTokenTypesMatch(input: String) {
 | 
				
			||||||
        val stringInputStream = createInputStreamFromString(input)
 | 
					        val stringInputStream = createInputStreamFromString(input)
 | 
				
			||||||
        val lispScanner = LispScanner(stringInputStream, "testFile")
 | 
					        val lispScanner = LispScanner(stringInputStream, "testFile")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (type in expectedTypes!!)
 | 
					        for (type in expectedTypes)
 | 
				
			||||||
            assertTrue(type.isInstance(lispScanner.nextToken))
 | 
					            assertThat(type.isInstance(lispScanner.nextToken)).isTrue()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTrue(lispScanner.nextToken is Eof)
 | 
					        assertThat(lispScanner.nextToken is Eof).isTrue()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Before
 | 
					    @BeforeEach
 | 
				
			||||||
    fun setUp() {
 | 
					    fun setUp() {
 | 
				
			||||||
        expectedTypes = mutableListOf()
 | 
					        expectedTypes.clear()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenEmptyFile_ReturnsCorrectTypes() {
 | 
					    fun `types for an empty file`() {
 | 
				
			||||||
        val input = ""
 | 
					        val input = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test(expected = BadCharacterException::class)
 | 
					    @Test
 | 
				
			||||||
    fun givenBadCharacter_ThrowsException() {
 | 
					    fun `bad character is not accepted`() {
 | 
				
			||||||
        val input = "["
 | 
					        val input = "["
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertThrows(BadCharacterException::class.java) { assertTokenTypesMatch(input) }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenBadCharacter_ExceptionContainsCorrectSeverity() {
 | 
					    fun `BadCharacterException is cool`() {
 | 
				
			||||||
        val input = "abc\ndef["
 | 
					        val input = "abc\ndef["
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            assertTokenTypesMatch(input)
 | 
					            assertTokenTypesMatch(input)
 | 
				
			||||||
        } catch (e: BadCharacterException) {
 | 
					        } catch (e: BadCharacterException) {
 | 
				
			||||||
            assertEquals(ERROR, e.severity)
 | 
					            assertIsErrorWithMessage(e)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenBadCharacter_ExceptionContainsMessage() {
 | 
					    fun `types for nil`() {
 | 
				
			||||||
        val input = "abc\ndef["
 | 
					 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try {
 | 
					 | 
				
			||||||
            assertTokenTypesMatch(input)
 | 
					 | 
				
			||||||
        } catch (e: BadCharacterException) {
 | 
					 | 
				
			||||||
            val message = e.message
 | 
					 | 
				
			||||||
            assertNotNull(message)
 | 
					 | 
				
			||||||
            assertTrue(message.length > 0)
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Test
 | 
					 | 
				
			||||||
    fun givenNil_ReturnsCorrectTypes() {
 | 
					 | 
				
			||||||
        val input = "()"
 | 
					        val input = "()"
 | 
				
			||||||
        expectedTypes!!.add(LeftParenthesis::class.java)
 | 
					        expectedTypes.add(LeftParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(RightParenthesis::class.java)
 | 
					        expectedTypes.add(RightParenthesis::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenListOfNumbers_ReturnsCorrectTypes() {
 | 
					    fun `types for a list of numbers`() {
 | 
				
			||||||
        val input = "(1 2)"
 | 
					        val input = "(1 2)"
 | 
				
			||||||
        expectedTypes!!.add(LeftParenthesis::class.java)
 | 
					        expectedTypes.add(LeftParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
        expectedTypes!!.add(RightParenthesis::class.java)
 | 
					        expectedTypes.add(RightParenthesis::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenString_ReturnsCorrectTypes() {
 | 
					    fun `types for a string`() {
 | 
				
			||||||
        val input = "\"string\""
 | 
					        val input = "\"string\""
 | 
				
			||||||
        expectedTypes!!.add(QuotedString::class.java)
 | 
					        expectedTypes.add(QuotedString::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenStringWithEscapedDoubleQuote_ReturnsCorrectTypes() {
 | 
					    fun `types for a string with escaped double quote`() {
 | 
				
			||||||
        val input = "\"string \n hi \\\" bye\""
 | 
					        val input = "\"string \n hi \\\" bye\""
 | 
				
			||||||
        expectedTypes!!.add(QuotedString::class.java)
 | 
					        expectedTypes.add(QuotedString::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenStringWithEscapedDoubleQuoteAndComment_ReturnsCorrectTypes() {
 | 
					    fun `types for a string with an escaped double quote and comment`() {
 | 
				
			||||||
        val input = "\"string \n hi \\\" ; bye\""
 | 
					        val input = "\"string \n hi \\\" ; bye\""
 | 
				
			||||||
        expectedTypes!!.add(QuotedString::class.java)
 | 
					        expectedTypes.add(QuotedString::class.java)
 | 
				
			||||||
 | 
					 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Test(expected = UnterminatedStringException::class)
 | 
					 | 
				
			||||||
    fun givenUnterminatedString_ThrowsException() {
 | 
					 | 
				
			||||||
        val input = "\"oh no!"
 | 
					 | 
				
			||||||
        expectedTypes!!.add(QuotedString::class.java)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenUnterminatedString_ExceptionHasCorrectSeverity() {
 | 
					    fun `types for an unterminated string`() {
 | 
				
			||||||
        val input = "\"oh no!"
 | 
					        val input = "\"oh no!"
 | 
				
			||||||
        expectedTypes!!.add(QuotedString::class.java)
 | 
					        expectedTypes.add(QuotedString::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assertThrows(UnterminatedStringException::class.java) { assertTokenTypesMatch(input) }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    fun `UnterminatedStringException is cool`() {
 | 
				
			||||||
 | 
					        val input = "\"oh no!"
 | 
				
			||||||
 | 
					        expectedTypes.add(QuotedString::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            assertTokenTypesMatch(input)
 | 
					            assertTokenTypesMatch(input)
 | 
				
			||||||
        } catch (e: LispScanner.UnterminatedStringException) {
 | 
					        } catch (e: UnterminatedStringException) {
 | 
				
			||||||
            assertEquals(ERROR, e.severity)
 | 
					            assertIsErrorWithMessage(e)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenUnterminatedString_ExceptionContainsMessage() {
 | 
					    fun `types for an identifier`() {
 | 
				
			||||||
        val input = "\"oh no!"
 | 
					 | 
				
			||||||
        expectedTypes!!.add(QuotedString::class.java)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try {
 | 
					 | 
				
			||||||
            assertTokenTypesMatch(input)
 | 
					 | 
				
			||||||
        } catch (e: LispScanner.UnterminatedStringException) {
 | 
					 | 
				
			||||||
            val message = e.message
 | 
					 | 
				
			||||||
            assertNotNull(message)
 | 
					 | 
				
			||||||
            assertTrue(message.length > 0)
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Test
 | 
					 | 
				
			||||||
    fun givenIdentifier_ReturnsCorrectTypes() {
 | 
					 | 
				
			||||||
        val input = "abcdefgHIJKLMNOP1234"
 | 
					        val input = "abcdefgHIJKLMNOP1234"
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenPrefixedIdentifiers_ReturnsCorrectTypes() {
 | 
					    fun `types for prefixed identifiers`() {
 | 
				
			||||||
        val input = "-a +b"
 | 
					        val input = "-a +b"
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -180,123 +150,123 @@ class LispScannerTypeTest {
 | 
				
			|||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenSingleDigitNumber_ReturnsCorrectTypes() {
 | 
					    fun givenSingleDigitNumber_ReturnsCorrectTypes() {
 | 
				
			||||||
        val input = "1"
 | 
					        val input = "1"
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenPrefixedNegativeNumber_ReturnsCorrectTypes() {
 | 
					    fun `types for a prefixed negative number`() {
 | 
				
			||||||
        val input = "-1"
 | 
					        val input = "-1"
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenPrefixedNumber_ReturnsCorrectTypes() {
 | 
					    fun `types for a prefixed positive number`() {
 | 
				
			||||||
        val input = "+1"
 | 
					        val input = "+1"
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenPrefixedNegativeNumberAndIdentifier_ReturnsCorrectTypes() {
 | 
					    fun `types for a prefixed negative number and an identifier`() {
 | 
				
			||||||
        val input = "-1apple"
 | 
					        val input = "-1apple"
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenPrefixedNumberAndIdentifier_ReturnsCorrectTypes() {
 | 
					    fun `types for a prefixed positive number and an identifier`() {
 | 
				
			||||||
        val input = "+1apple"
 | 
					        val input = "+1apple"
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenPrefixedNegativeNumberAndString_ReturnsCorrectTypes() {
 | 
					    fun `types for a prefixed negative number and a string`() {
 | 
				
			||||||
        val input = "-1\"apple\""
 | 
					        val input = "-1\"apple\""
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
        expectedTypes!!.add(QuotedString::class.java)
 | 
					        expectedTypes.add(QuotedString::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenPrefixedNumberAndString_ReturnsCorrectTypes() {
 | 
					    fun `types for a prefixed positive number and a string`() {
 | 
				
			||||||
        val input = "+1\"apple\""
 | 
					        val input = "+1\"apple\""
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
        expectedTypes!!.add(QuotedString::class.java)
 | 
					        expectedTypes.add(QuotedString::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenMultipleDigitNumber_ReturnsCorrectTypes() {
 | 
					    fun `types for a mulitple digit number`() {
 | 
				
			||||||
        val input = "1234567890"
 | 
					        val input = "1234567890"
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenQuote_ReturnsCorrectTypes() {
 | 
					    fun `types for a quote`() {
 | 
				
			||||||
        val input = "'"
 | 
					        val input = "'"
 | 
				
			||||||
        expectedTypes!!.add(QuoteMark::class.java)
 | 
					        expectedTypes.add(QuoteMark::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenManyTypesWithNoWhitespace_ReturnsCorrectTypes() {
 | 
					    fun `types for several expressions with no whitespace`() {
 | 
				
			||||||
        val input = "xxx\"hi\"999()'aaa"
 | 
					        val input = "xxx\"hi\"999()'aaa"
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(QuotedString::class.java)
 | 
					        expectedTypes.add(QuotedString::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Number::class.java)
 | 
					        expectedTypes.add(Number::class.java)
 | 
				
			||||||
        expectedTypes!!.add(LeftParenthesis::class.java)
 | 
					        expectedTypes.add(LeftParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(RightParenthesis::class.java)
 | 
					        expectedTypes.add(RightParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(QuoteMark::class.java)
 | 
					        expectedTypes.add(QuoteMark::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenFunctionCall_ReturnsCorrectTypes() {
 | 
					    fun `types for a function call`() {
 | 
				
			||||||
        val input = "(defun myFunction (x)\n  (print x))"
 | 
					        val input = "(defun myFunction (x)\n  (print x))"
 | 
				
			||||||
        expectedTypes!!.add(LeftParenthesis::class.java)
 | 
					        expectedTypes.add(LeftParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(LeftParenthesis::class.java)
 | 
					        expectedTypes.add(LeftParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(RightParenthesis::class.java)
 | 
					        expectedTypes.add(RightParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(LeftParenthesis::class.java)
 | 
					        expectedTypes.add(LeftParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(RightParenthesis::class.java)
 | 
					        expectedTypes.add(RightParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(RightParenthesis::class.java)
 | 
					        expectedTypes.add(RightParenthesis::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun givenBackTickExpression_ReturnsCorrectTypes() {
 | 
					    fun `types for a back tick expression`() {
 | 
				
			||||||
        val input = "`(list ,a ,@b)"
 | 
					        val input = "`(list ,a ,@b)"
 | 
				
			||||||
        expectedTypes!!.add(Backquote::class.java)
 | 
					        expectedTypes.add(Backquote::class.java)
 | 
				
			||||||
        expectedTypes!!.add(LeftParenthesis::class.java)
 | 
					        expectedTypes.add(LeftParenthesis::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Comma::class.java)
 | 
					        expectedTypes.add(Comma::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Comma::class.java)
 | 
					        expectedTypes.add(Comma::class.java)
 | 
				
			||||||
        expectedTypes!!.add(AtSign::class.java)
 | 
					        expectedTypes.add(AtSign::class.java)
 | 
				
			||||||
        expectedTypes!!.add(Identifier::class.java)
 | 
					        expectedTypes.add(Identifier::class.java)
 | 
				
			||||||
        expectedTypes!!.add(RightParenthesis::class.java)
 | 
					        expectedTypes.add(RightParenthesis::class.java)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        assertTokenTypesMatch(input)
 | 
					        assertTokenTypesMatch(input)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user