Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Spaceship/Spaceship_test.h

Committer:
evanso
Date:
2020-04-26
Revision:
13:12276eed13ac
Parent:
12:1c0b6796aaca
Child:
14:7419c680656f

File content as of revision 13:12276eed13ac:

#ifndef SPACESHIP_TEST_H
#define SPACESHIP_TEST_H

// Objects reqired for test ----------------------------------------------------
Gamepad pad;
N5110 lcd;
Spaceship spaceship;
Direction d_;

/** Spaceship Test
@brief Checks Spcaceship goes to the correct postion when moved and doesnt go of map
@author Benjamin Evans, University of Leeds
@date April 2020
@return true if test are passed 
*/

bool spaceship_movement_test(Direction d_, int expected_x,int expected_y){
    
    // Initialise spaceship in start postion of 36, 22 
    pad.init();
    lcd.init();
    spaceship.init(); 
    
    printf("spaceship_movement = %d,%d : ", expected_x, expected_y );
    
    // Moves spcaeship
    spaceship.movement(d_);
    
    //Reads finish spaceship positon 
    int finish_x_postion = spaceship.get_position_x_spaceship();
    int finish_y_postion = spaceship.get_position_y_spaceship();
    
    // Checks final position with espected
    if (finish_x_postion == expected_x && finish_y_postion == expected_y) {
        printf ( "Passed!\n");
        return true;
    } else {
        printf ( "Failed! value = %d,%d  (expecting  %d,%d)\n", finish_x_postion, finish_y_postion, expected_x, expected_y);
        return false;
    }
    
}

bool spaceship_draw_test(Direction d_, int expected_pixel_status, int expected_postion_x, int expected_postion_y){
    // Initialise spaceship in start postion of 36, 22 
    pad.init();
    lcd.init();
    spaceship.init(); 
    
    // Reads start spaceship postion 
    printf("spaceship_draw x,y= %d,%d : ",expected_postion_x, expected_postion_y );
    
    // Moves spcaeship to max/min x and y postions to test off_screen_x_y_checker
    for (int i = 0; i < 30; i++){
        spaceship.movement(d_);
    }
    
    // Draws spaceship
    spaceship.draw(lcd);
    
    // Reads pixel where spaceship is expected to be drawn 
    int actual_pixel_status = lcd.getPixel(expected_postion_x, expected_postion_y);
    
    //Reads finish spaceship positon 
    int finish_x_postion = spaceship.get_position_x_spaceship();
    int finish_y_postion = spaceship.get_position_y_spaceship();
    
    
    // Checks if pixel is drawn and therefor testing it hasnt gone of screen
    if (actual_pixel_status) {
        printf ( "Passed!\n");
        return true;
    } else {
        printf ( "Failed! value = %d  (expecting  %d)\n", actual_pixel_status, expected_pixel_status);
        printf("\nactual psotion x,y= %d,%d : \n ",finish_x_postion, finish_y_postion );
        return false;
    }
}
#endif