Test Specification

===Test Specification===
Note: Since we are only building a prototype (and not a robust program) for the Kickstarter pitch, our tests at this point are not so much code-based as they are customer-based. We want to specifically show the owners (the Lowry's) that we have the ability to do the things they are asking so we can screen-capture these things for our Kickstarter video. In addition, a lot of our code base has yet to be written. As of this week's deliverable date (15 March 2014), this is our test plan.
----
Here is our "Template": Project Requirements
For each of the requirements, we must create a test or test suite that guarantees that we have met the indicated objectives.
Please add to this document a section for the portion of the program you have been assigned and identify describe the test cases you will run. We will post our actual integration test results (PASS/FAIL) on this page to indicate the status of development of our program.
===Item Creation Engine===
Test Description 	Test Passed?
Update() method called on mesh object changes its geometry at run-time 	
PASS
Object geometry is correctly generated from vertices 	
FAIL
Object properties (material makeup, density, etc.) write to item class 	
FAIL
Do not allow vertices to be moved outside the item's bounding box 	
FAIL
Single method correctly computes item's mass from its materials and geometry 	
FAIL
Editing only allowed within material/financial constraints 	
FAIL
Provide completed sword template file 	
FAIL
Screen coordinates correctly translate to object coordinates and vice versa 	
FAIL
Item class files meet formatting and content requirements of combat team 	
FAIL
Demonstrate that re-load after editing and saving an object keeps and loads the changes made previously 	
FAIL
Vertices of object are stored in appropriate order after object manipulation (i.e. after delete, create new, etc.)	
FAIL
Editing appropriately allows for undoing and redoing actions (or should this be UI?) 	
FAIL
Provide needed actions for UI interface 	
FAIL
===Combat Engine===
Test Description 	Test Passed?
Player passes out after losing two-thirds of his blood points 	
FAIL
Unconscious players regenerate blood slightly faster than normal 	
FAIL
Blood points must always be between zero and the maximum amount, inclusively 	
FAIL
Severe injuries in the arms disable the player's ability to swing his weapon 	
FAIL
Severe injuries in the legs cripple the player, slowing movement speed and making him clumsier 	
FAIL
The most severe injuries in crucial places (ie. head, throat, etc) cause immediate death 	
FAIL
Severe injuries in crucial places (ie. head, throat, etc.) cause immediate unconsciousness for a time if they do not cause immediate death 	
FAIL
More severe bleed injuries cause player to lose more blood points at a faster rate 	
FAIL
Injuries are caused only when something comes into contact with the player's skin or armor 	
FAIL
A shield and armor protects the player from all injuries except those for which they are weak or vulnerable (like fire hitting chain mail) 	
FAIL
An injury's severity is properly calculated according to the momentum of the player and the object system and the player's protection at the points of collision	
FAIL
===Item Creation UI===
Test Description 	Test Passed?
Clicking on forge opens up menu for Item Creation 	
FAIL
Choosing an item to edit successfully loads and displays it 	
FAIL
The vertices on the item are highlighted and selectable 	
FAIL
Item correctly rotates intervals of 90 degrees around the y-axis when flipped 	
FAIL
Weapon stats are correctly displayed 	
FAIL
Clicking the vertex editor button in the toolbox enables vertex editing (all other buttons are reach items for now) 	
FAIL
Vertices successfully snap to the underlying grid 	
FAIL
Newly added vertices are successfully displayed and can be manipulated. 	
FAIL
Selecting a weapon part causes that weapon type to be placed in focus (vertices appear and are selectable) 	
FAIL
The materials of weapon types can be changed from the weapon parts window 	
FAIL
Changes to a weapon type's material are reflected visually in the rendered item 	
FAIL
Contents of Options and Help windows change when toolbox selection changes 	
FAIL
Dragging and dropping a vertex causes the item underneath to change its geometry correspondingly 	
FAIL
Dragging a vertex causes the outside borders of where it can be dragged to be displayed (low priority) 	
FAIL
Dragging a vertex too close to another existing edge or vertex causes a visual effect to appear indicating that the vertex cannot be dragged beyond it. (low priority) 	
FAIL
When symmetric mode is enabled, all operations on vertices on one side of the screen (left/right) are mirrored on the opposite side of the screen, if an opposite vertex exists. (Reach feature)	
FAIL
When a vertex is added, the new vertex is reflected by the item underneath 	
FAIL
Vertices can be deleted 	
FAIL
When a vertex is deleted, the deletion is reflected by the item geometry underneath. 	
FAIL