def test_same_memory():
    data_packet = WaveformDataPacket(8276)
    values = data_packet.GetDataPacket()
    assert values[0] == 0

    values[0] = 12
    assert data_packet.GetDataPacket()[0] == 12
예제 #2
0
def test_setters(packet):
    data_packet = WaveformDataPacket(packet.size)
    data_packet.GetDataPacket()[:] = packet
    waveform = Waveform()
    waveform.Associate(data_packet, 20)

    assert waveform.GetSample12bit(0) != 4000
    waveform.SetSample12bit(0, 4000)
    assert waveform.GetSample12bit(0) == 4000
    assert waveform.GetSample16bit(0) == 4000

    assert waveform.GetSample16bit(0) != 65000
    waveform.SetSample16bit(0, 65000)
    assert waveform.GetSample12bit(0) != 65000  # Overflow
    assert waveform.GetSample16bit(0) == 65000
예제 #3
0
def test_waveform_event_r1(packet_array):
    n_packets_per_event = 1
    packet_size = 8276
    n_pixels = 64
    first_active_module_slot = 22
    event = WaveformEventR1(n_packets_per_event, n_pixels, first_active_module_slot)
    with pytest.raises(RuntimeError):
        event.get_array()

    packet = WaveformDataPacket(packet_size)
    packet.GetDataPacket()[:] = packet_array
    event.add_packet_shared(packet)
    assert event.packets[0] == packet
    waveforms = event.get_array()
    assert (waveforms[:32] > 0).all()
    assert waveforms.dtype == np.float32
예제 #4
0
def test_getters(packet):
    data_packet = WaveformDataPacket(packet.size)
    data_packet.GetDataPacket()[:] = packet
    waveform = Waveform()
    assert not waveform.IsAssociated()
    waveform.Associate(data_packet, 20)
    assert waveform.IsAssociated()

    assert not waveform.IsErrorFlagOn()
    assert waveform.GetChannelID() == 4
    assert waveform.GetASICID() == 1
    assert waveform.GetNSamples() == 128
    assert not waveform.IsZeroSuppressed()
    assert waveform.GetSample12bit(0) == 584
    assert waveform.GetSample12bit(10) == 582
    assert waveform.GetSample16bit(0) == 584
    assert waveform.GetSample16bit(10) == 8774
    assert waveform.GetPixelID() == 20
예제 #5
0
def test_get_event_metadata(packet_array):
    n_packets_per_event = 1
    packet_size = 8276
    n_pixels = 64
    first_active_module_slot = 22

    event = WaveformEventR1(n_packets_per_event, n_pixels,
                            first_active_module_slot, 20, 30, 40, 50)

    assert event.cpu_sec == 20
    assert event.cpu_ns == 30
    assert event.scale == 40
    assert event.offset == 50

    packet = WaveformDataPacket(packet_size)
    packet.GetDataPacket()[:] = packet_array
    event.add_packet_shared(packet)
    assert event.first_cell_id == 1448
예제 #6
0
def test_scale_offset(packet_array):
    n_packets_per_event = 1
    packet_size = 8276
    n_pixels = 64
    first_active_module_slot = 22

    event = WaveformEventR1(n_packets_per_event, n_pixels, first_active_module_slot)
    packet = WaveformDataPacket(packet_size)
    packet.GetDataPacket()[:] = packet_array
    event.add_packet_shared(packet)
    waveforms_1 = event.get_array()
    assert (waveforms_1[:32] > 0).all()

    scale = 10
    offset = 5
    event = WaveformEventR1(n_packets_per_event, n_pixels,
                            first_active_module_slot, 20, 30, scale, offset)
    packet = WaveformDataPacket(packet_size)
    packet.GetDataPacket()[:] = packet_array
    event.add_packet_shared(packet)
    waveforms_2 = event.get_array()
    assert (waveforms_2[:32] > 0).all()

    np.testing.assert_equal((waveforms_1[:32] / scale) - offset, waveforms_2[:32])
예제 #7
0
def test_last_waveform(packet):
    data_packet = WaveformDataPacket(packet.size)
    data_packet.GetDataPacket()[:] = packet
    waveform = Waveform()
    waveform.Associate(data_packet, data_packet.GetNWaveforms() - 1)
    assert waveform.GetSample12bit(0) == 649
예제 #8
0
def test_constructor(packet):
    data_packet = WaveformDataPacket(packet.size)
    data_packet.GetDataPacket()[:] = packet
    waveform = Waveform()
    print(type(data_packet))
    waveform.Associate(data_packet, 0)
def test_getters(packet):
    data_packet = WaveformDataPacket(packet.size)
    data_packet.GetDataPacket()[:] = packet

    assert packet[0] == 32
    assert data_packet.GetDataPacket()[0] == 32

    assert data_packet.GetNWaveforms() == 32
    assert data_packet.GetRegisterSetup() == 0
    assert not data_packet.IsLastSubPacket()
    assert data_packet.IsFirstSubPacket()
    assert data_packet.GetNBuffers() == 8
    assert data_packet.GetTACK() == 2165717354592
    assert data_packet.GetEventNumber() == 18528
    assert data_packet.GetSlotID() == 22
    assert data_packet.GetDetectorID() == 22
    assert data_packet.GetEventSequenceNumber() == 236
    assert data_packet.GetDetectorUniqueTag() == 160
    assert data_packet.GetColumn() == 5
    assert data_packet.GetStaleBit() == 0
    assert data_packet.IsZeroSupressionEnabled() == 0
    assert data_packet.GetRow() == 5
    assert data_packet.GetBlockPhase() == 8
    assert data_packet.GetCRC() == 38078
    assert data_packet.GetMBZ() == 0
    assert not data_packet.IsTimeout()
    assert not data_packet.IsError()

    assert data_packet.GetWaveformSamplesNBlocks() == 4
    assert data_packet.GetWaveformSamplesNBytes() == 256
    assert data_packet.GetWaveformNSamples() == 128
    assert data_packet.GetWaveformNBytes() == 258
    assert data_packet.GetWaveformStart(0) == 16
    assert data_packet.GetPacketNBytes() == 8276
def test_constructor(packet):
    data_packet = WaveformDataPacket(packet.size)
    assert data_packet.GetPacketSize() == packet.size

    data_packet.GetDataPacket()[:] = packet
    np.testing.assert_equal(packet, data_packet.GetDataPacket())