vector.test.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { ConstantVector, ScaledVector, ArrayVector, CircularVector } from './vector';
  2. describe('Check Proxy Vector', () => {
  3. it('should support constant values', () => {
  4. const value = 3.5;
  5. const v = new ConstantVector(value, 7);
  6. expect(v.length).toEqual(7);
  7. expect(v.get(0)).toEqual(value);
  8. expect(v.get(1)).toEqual(value);
  9. // Now check all of them
  10. for (let i = 0; i < 10; i++) {
  11. expect(v.get(i)).toEqual(value);
  12. }
  13. });
  14. it('should support multiply operations', () => {
  15. const source = new ArrayVector([1, 2, 3, 4]);
  16. const scale = 2.456;
  17. const v = new ScaledVector(source, scale);
  18. expect(v.length).toEqual(source.length);
  19. // expect(v.push(10)).toEqual(source.length); // not implemented
  20. for (let i = 0; i < 10; i++) {
  21. expect(v.get(i)).toEqual(source.get(i) * scale);
  22. }
  23. });
  24. });
  25. describe('Check Circular Vector', () => {
  26. it('should support constant values', () => {
  27. const buffer = [3, 2, 1, 0];
  28. const v = new CircularVector(buffer);
  29. expect(v.length).toEqual(4);
  30. expect(v.toJSON()).toEqual([3, 2, 1, 0]);
  31. v.append(4);
  32. expect(v.toJSON()).toEqual([4, 3, 2, 1]);
  33. v.append(5);
  34. expect(v.toJSON()).toEqual([5, 4, 3, 2]);
  35. });
  36. });