The model you propose does reflect your assumptions, though as others have pointed out, Test_questions and User_Answers are unnecessary since they map one-one to Test and User respectively.
But (again, as others have said), I would reconsider whether you want only one test per user and only one user per test. Indeed, your assumptions include "Each User has one set of answers per Test taken" which implies that there could be more than one test taken. To accommodate this, I would add an intermediate entity, Attempt, which will record details of the user, the test, the date, etc. By having one-many relationships from User to Attempt, and from Test to Attempt, you can allow both a) several users to take the same test, and b) any user to have several attempts, either trying different tests or trying the same test several times. I would also add a testName attribute to Test, and a questionTitle attribute to Question, for use in tableViewCells, etc.
Though not in your assumptions, your model currently requires that any one question can appear on only one test. I would suggest changing this: you could then generate different tests by randomly selecting from a bank of questions. But this does necessitate another entity, "TestQuestionDetails", which has one-many relationships from Test and Question, which could record details such as a question number. Again, as others have suggested, I would convert your category attribute on Question to a separate entity. That will allow you to add an attribute such as "sortIndex" so that you can sort categories as you wish (which you might prefer not be alphabetical).
The end result looks like this:
