Skip to content
Snippets Groups Projects
Select Git revision
  • 4a39e94443339ca22d61e267f265b4b859591c2c
  • main default protected
  • increment
  • features
4 results

common.h

Blame
  • Vector.c 1.87 KiB
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
    #include "Vector.h"
    
    
    vec *new_vec(double x, double y){
    
        //Allocation de la mémoire nécessaire
        vec *new_vec = malloc(sizeof(vec));
    
        //On vérifie que l'allocation est bien faite
        if (new_vec == NULL){
            exit(1);
        }
        //Attribution des valeurs x et y
        new_vec->x = x;
        new_vec->y = y;
    
        return new_vec;
    
    }
    
    vec *add_vec(const vec *const v1, const vec *const v2){
    
        vec *add_vec = new_vec(0.0,0.0);
        add_vec->x = v1->x + v2->x;
        add_vec->y = v1->y + v2->y;
    
        return add_vec;
    
    }
    
    vec *sub_vec(const vec *const v1, const vec *const v2){
        vec *sub_vec = new_vec(0.0,0.0);
        sub_vec->x = v1->x - v2->x;
        sub_vec->y = v1->y - v2->y;
    
        return sub_vec;
    
    }
    
    
    int Test_new_vec(){
    
        vec *vector = new_vec(2.0,3.1);
        if(vector->x == 2.0 && vector->y == 3.1){
            printf("Test_new_vec IS OK\n");
        }
        else{
            printf("Test_new_vec has an ERROR\n");
        }
        free(vector);
    }
    
    int Test_add_vec(){
        vec *v1 = new_vec(2.5,3.2);
        vec *v2 = new_vec(4.6,1.5);
        vec *v3 = add_vec(v1,v2);
    
        if(v3->x == 7.1 && v3->y == 4.7){
            printf("Test_add_vec IS OK\n");
        }
        else {
            printf("Test_add_vec has an ERROR\n");
        }
        free(v1);
        free(v2);
        free(v3);
    }
    
    
    int Test_sub_vec(){
        vec *v1 = new_vec(2.5,3.2);
        vec *v2 = new_vec(4.6,1.5);
        vec *v3 = sub_vec(v1,v2);
    
    
        if(v3->x == (v1->x-v2->x) && v3->y == (v1->y-v2->y)){
            printf("Test_sub_vec IS OK\n");
        }
        else {
            printf("Test_sub_vec has an ERROR\n");
    
        }
        free(v1);
        free(v2);
        free(v3);
    }
    
    
    
    int main_tests(){
    
        Test_new_vec();
        Test_add_vec();
        Test_sub_vec();
    }
    
    
    
    int main(int argc, char *argv[]){
        if(argc == 2) {
            if (strcmp(argv[1], "test") == 0) {
    
                main_tests();
    
            }
        }
        else{
            printf("OK\n");
        }
    
    }