Project 1.4: EncodingHelperChar Implementation

Due Wednesday 4/8 Friday 4/10 @ 10:45am. Do this portion with your partner.

Goals

Implement the core features of EncodingHelper, to create the foundation upon which you'll build a great application!

Your Task

Implement all the methods defined in EncodingHelperChar.java to match the specifications given in the Javadoc comments. Run your test suite and make sure that your implementation passes. (It's also possible that you wrote some of your tests incorrectly, of course; the grader and I will be checking that ourselves, but you won't hear back from us before this phase of the project is due. So if you notice any errors in your tests, go ahead and fix them.)

As mentioned in the last phase, the EncodingHelperChar class should support all codepoints formally defined in Unicode, even those beyond the basic multilingual plane. You can consult the official UnicodeData.txt data file and/or the Unicode tables on Wikipedia to investigate this. Make sure that you test support throughout the Unicode space! If you think of new tests while you're working on this phase, go ahead and add them to your test class.

For the getCharacterName method, you'll need the file UnicodeData.txt. This file is small enough (just about 1MB) that it's fine to include it as part of your project and to store it in your Git repo, so please do that.

Further Specifications

Some Help

You may not be familiar with working with bits and bytes directly in a program (in Java or otherwise). To help you along with that, I created a demo program with lots of comments that shows how to work with Java's byte type and pulling individual bits out of it. So go ahead and download BitDemo.java and compile it (just using javac on the command line; no need to put it in a project in IntelliJ). Then run it, and read through the source code as you examine the output.

A couple things to point out:

Turning It In

Submit your program by committing (and pushing) it to your Bitbucket repository, tagged as phase3_final.

Remember to double-check on Bitbucket that your push worked, and also that the repo is shared with me and the graders!