Warning, /firebird/firebird-ng/src/app/model/data-exchange.spec.ts is written in an unsupported language. File is not indexed.
0001 // data-exchange.spec.ts
0002
0003 import { DataExchange } from './data-exchange';
0004 import { Event } from './event';
0005 import { BoxHitGroup, BoxHit, BoxHitGroupFactory } from './box-hit.group';
0006 import {_resetEventGroupRegistry, registerEventGroupFactory} from './event-group';
0007
0008 // Register the BoxHitComponentFactory
0009
0010
0011 describe('DataExchange with BoxHitGroup', () => {
0012 it('should serialize and deserialize correctly', () => {
0013 // Create hits
0014 const hit1 = new BoxHit([1, 2, 3], [10, 10, 1], [4, 1], [0.001, 0.0001]);
0015 const hit2 = new BoxHit([4, 5, 6], [10, 10, 2], [5, 1], [0.002, 0.0002]);
0016
0017 // Create component
0018 const component = new BoxHitGroup('TestComponent', 'Testorigin');
0019 component.hits.push(hit1, hit2);
0020
0021 // Create entry
0022 const entry = new Event();
0023 entry.id = 'event1';
0024 entry.groups.push(component);
0025
0026 // Create DataExchange
0027 const dataExchange = new DataExchange();
0028 dataExchange.version = '0.01';
0029 dataExchange.origin = { fileName: 'sample.dat' };
0030 dataExchange.events.push(entry);
0031
0032 _resetEventGroupRegistry();
0033 registerEventGroupFactory(new BoxHitGroupFactory());
0034
0035 // Serialize
0036 const serialized = dataExchange.toDexObject();
0037
0038 // Deserialize
0039 const deserialized = DataExchange.fromDexObj(serialized);
0040
0041 // Assertions
0042 expect(deserialized.version).toBe(dataExchange.version);
0043 expect(deserialized.origin).toEqual(dataExchange.origin);
0044 expect(deserialized.events.length).toBe(1);
0045
0046 const deserializedEntry = deserialized.events[0];
0047 expect(deserializedEntry.id).toBe(entry.id);
0048 expect(deserializedEntry.groups.length).toBe(1);
0049
0050 const deserializedComponent = deserializedEntry.groups[0] as BoxHitGroup;
0051 expect(deserializedComponent.name).toBe(component.name);
0052 expect(deserializedComponent.type).toBe(component.type);
0053 expect(deserializedComponent.origin).toBe(component.origin);
0054 expect(deserializedComponent.hits.length).toBe(2);
0055
0056 // Check hits
0057 for (let i = 0; i < deserializedComponent.hits.length; i++) {
0058 const originalHit = component.hits[i];
0059 const deserializedHit = deserializedComponent.hits[i];
0060
0061 expect(deserializedHit.position).toEqual(originalHit.position);
0062 expect(deserializedHit.dimensions).toEqual(originalHit.dimensions);
0063 expect(deserializedHit.time).toEqual(originalHit.time);
0064 expect(deserializedHit.energyDeposit).toEqual(originalHit.energyDeposit);
0065 }
0066 });
0067 });