Scala Online Test
About the test
The Scala online test assesses knowledge of programming in the Scala language and commonly used parts of the Scala and Java frameworks' class library. This test requires solving live coding problems in Scala.
The assessment includes work-sample tasks such as:
- Using OOP principles in Scala to write reusable code.
- Working with proper immutable collections to improve code maintainability.
- Handling exceptions in the Scala way.
A good Scala developer needs a solid understanding of the Scala programming language and the ability to take advantage of the functionality provided by Scala and the framework’s class library to write robust and maintainable code.
Sample public questions
Implement the uniqueNames function. When passed two vectors of names, it will return a vector containing the names that appear in either or both input vectors. The returned vector should have no duplicates.
For example, calling MergeNames.uniqueNames(Vector("Ava", "Emma", "Olivia"), Vector("Olivia", "Sophia", "Emma")) should return a vector containing Ava, Emma, Olivia, and Sophia in any order.
The code for the PlayerInventory class is not working. When a user starts a new account, PlayerInventory is initialized with basic items. It should also be possible to add and drop items from the inventory, with duplicate items added and removed separately.
For example, if "lumber" was added to the inventory and "stone" was removed, getItems() should return a Vector containing "lumber", "magic potion", and "lumber", in any order.
Fix the bugs.
User interface contains two types of user input controls: TextInput, which accepts all characters and NumericInput, which accepts only digits.
Implement the class TextInput that contains:
- Public method def add(c : Char) - concatenates the given character to the current value
- Public method def getValue: String - returns the current value
Implement the class NumericInput that:
- Inherits from TextInput
- Overrides the add method so that each non-numeric character is ignored
For example, the following code should output "10":
val input: TextInput = new NumericInput() input.add('1') input.add('a') input.add('0') println(input.getValue())
As part of a data processing pipeline, complete the implementation of the makePipeline function:
- The makePipeline function should accept a variable number of functions, and it should return a new function that accepts one parameter arg.
- The returned function should call the first function in makePipeline with the parameter arg, and call the second function with the result of the first function.
- The returned function should continue calling each function in makePipeline in order, following the same pattern, and return the value from the last function.
For example, calling makePipeline((x: Int) => x * 3, (x: Int) => x + 1, (x: Int) => x / 2), and then calling the returned function with 3 should return 5.
For companies: premium questions
Buy TestDome to access premium questions that can't be practiced.
Get money back if you find any premium question answered online.
5 more premium Scala questions
Skills and topics tested
- Bug Fixing
- Lazy Evaluation
For job roles
- Back-End Developer
- Scala Developer
- Web Developer
Sample candidate report
What others say
Simple, straight-forward technical testing
TestDome is simple, provides a reasonable (though not extensive) battery of tests to choose from, and doesn't take the candidate an inordinate amount of time. It also simulates working pressure with the time limits.
Jan Opperman, Grindrod Bank
Solve all your skill testing needs
150+ Pre-made tests
From web development and database administration to project management and customer support. See all pre-made tests.
Mix questions for different skills or even custom questions in one test. See an example.
How TestDome works
Choose a pre-made test
or create a custom test
Invite candidates via
email, URL, or your ATS
a test remotely
Sort candidates and
get individual reports