//===============================================================================
//
//  TestVect.c
//
//  Developer: Henry Guennadi Levkin
//
//===============================================================================

#include <stdio.h>

#include "VectMatr.h"


#define VECT_DIM 5

//-------------------------------------------------------------------------------

int main(int nArg, char** ppArg)
{
  SVect vec1;
  SVect vec2;
  SVect vec3;

  double arr1[VECT_DIM] = {1.,  2.,  3., 4.,  5.,};
  double arr2[VECT_DIM] = {1., -2., -3., 4., -5.,};
  
  double fNumb;

  printf("Vector Algebra Library tests:\n");

  VectorConstruct(&vec1, VECT_DIM);
  VectorConstruct(&vec2, VECT_DIM);

  VectorFill(&vec1, arr1);
  VectorFill(&vec2, arr2);
  VectorCopyConstruct(&vec1, &vec3);

  VectorPrint(&vec1);
  VectorPrint(&vec2);
  VectorPrint(&vec3);

  VectorAddConstant(&vec1, &vec3, -2.0);
  VectorPrint(&vec3);
  VectorMultConstant(&vec1, &vec3, -2.0);
  VectorPrint(&vec3);

  VectorAdd(&vec1, &vec2, &vec3);
  VectorPrint(&vec3);

  VectorScalarMult(&vec1, &vec2, &fNumb);
  printf("result= %lf\n", fNumb);

  VectorLength(&vec1, &fNumb);
  printf("Length= %lf\n", fNumb);

  VectorEuclidDist(&vec1, &vec2, &fNumb);
  printf("EuclidDistance= %lf\n", fNumb);

  VectorCopy(&vec1, &vec3);
  vec3.pV[0] += 0.01;
  VectorAngle(&vec1, &vec3, &fNumb);
  printf("Angle between vectors= %lf\n", fNumb);
  
  VectorFree(&vec3);
  VectorFree(&vec2);
  VectorFree(&vec1);

  return 0;
}
