Back to home page

EIC code displayed by LXR

 
 

    


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 });