Skip to content

Commit

Permalink
Merge pull request #534 from qutech/issues/533_mapping_pt_duration
Browse files Browse the repository at this point in the history
Issues/533 mapping pt duration
  • Loading branch information
terrorfisch committed May 11, 2020
2 parents 926b5e3 + a9e292f commit a223bd6
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
5 changes: 4 additions & 1 deletion qupulse/pulses/mapping_pulse_template.py
Expand Up @@ -201,7 +201,10 @@ def defined_channels(self) -> Set[ChannelID]:

@property
def duration(self) -> Expression:
return self.__template.duration.evaluate_symbolic(self.__parameter_mapping)
return self.__template.duration.evaluate_symbolic(
{parameter_name: expression.underlying_expression
for parameter_name, expression in self.__parameter_mapping.items()}
)

def get_serialization_data(self, serializer: Optional[Serializer]=None) -> Dict[str, Any]:
data = super().get_serialization_data(serializer)
Expand Down
9 changes: 9 additions & 0 deletions tests/pulses/mapping_pulse_template_tests.py
Expand Up @@ -253,6 +253,15 @@ def test_integral(self) -> None:

self.assertEqual({'a': Expression('2*f'), 'B': Expression('-3.2*f+2.3')}, pulse.integral)

def test_duration(self):
seconds2ns = 1e9
pulse_duration = 1.0765001496284785e-07

dpt = DummyPulseTemplate(duration=Expression('duration'), parameter_names={'duration'},
defined_channels={'A'})
mpt = MappingPulseTemplate(dpt, parameter_mapping={'duration': seconds2ns * pulse_duration})
self.assertEqual(seconds2ns * pulse_duration, mpt.duration)

def test_drop_channel(self):
dummy = DummyPulseTemplate(defined_channels={'A', 'B', 'C', 'D'},
parameter_names={'k', 'f', 'b'})
Expand Down

0 comments on commit a223bd6

Please sign in to comment.