This lesson will describe what the Uni-directional, Reverse Uni-directional, and Bi-directional Married Pairs are from the "Constraints" screen. To understand when to use them, see this training file.

As stated in the previous help file, "Married Pairs" are a constraint for your plan to ensure that certain values only appear with certain other values; these two values must appear together. However, there are three options of Married Pairs to select from. Knowing which type to use depends on your plan.

Uni-directional Married Pair

This type of married pair is used when a certain value can only appear with a certain other value. Let's make a uni-directional married pair between 'Internet Browser = IE' and 'Operating System = Windows.'

In this example, 'Internet Browser = IE' must appear with 'Operating System = Windows.' In other words, whenever 'IE' appears in your set of tests, 'Windows' tags along. It's as if 'IE' can only "see" 'Windows' when it looks for a value from 'Operating System.' Likewise, 'IE' is unable to appear with 'OSX' nor 'Linux.'

Check out the confirmation to the left of the inputs to confirm that the logic is what you need for your plan.

So what about the other values from 'Internet Browser?' Although 'Chrome,' 'Firefox,' and 'Safari' are part of the same parameter as 'IE,' they are able to pair with any value from 'Operating System' as usual, including 'Windows.' The married pair does not directly concern the other Internet Browsers values. The image above illustrates how 'Internet Browser = IE' will only pair with 'Operating System = Windows' when concerning those two parameters.

Another way to think about it is that you want 'Internet Browser = IE' to appear with 'Operating System = Windows,' but you don't mind if 'Internet Browser = Chrome,' 'Internet Browser = Firefox,' or 'Internet Browser = Safari' also appear with 'Operating System = Windows.' However, 'Internet Browser = Safari' pairing with 'Operating System = Windows' doesn't make sense and would additionally need to deal with that appropriately.

Married pairs can be set between any two values of any two different parameters. A value can be a part of any number of pairs. Check the area to the left of the inputs to see what you have already paired.

If more parameters were present, their values would still be able to pair normally with values included in a married pair. The married pair does not concern those "outside" values, so it pairs as usual.

Reverse Uni-directional Married Pair

Like a normal uni-directional married pair, a certain value can only appear with a certain other value. Let's use a different set of inputs to make a reverse uni-directional married pair between 'Type of Animal = Cat' and ' Breed of Animal = Persian.' This type of married pair makes it so 'Breed of Animal = Persian' can only pair with 'Type of Animal = Cat.'

This time, 'Breed of Animal = Persian' will only "look" at 'Type of Animal = Cat.' If the values were analogous to dancers at a ball, 'Breed of Animal = Persian' will only take the hand of 'Type of Animal = Cat;' in this case, 'Type of Animal = Dog' is unacceptable.

On the other hand (pardon the pun), 'Type of Animal = Cat' doesn't mind anyone from 'Breed of Animal.' Again, parameter values outside of the married pair are still tested with any value from either parameter as normal. In other words, you want 'Type of Hotel = 5-Star' to appear with 'Add Hotel Reservation = Add hotel' but you don't mind if 'Type of Hotel = 3-Star' or 'Type of Hotel = 4-Star' are also able to appear with 'Add Hotel Reservation = Add hotel.'

The order in which you set the pair matters!

Bi-directional Married Pair

With this type of married pair, the two values in the married pair are exclusive to each other. This is great for situations with 'not applicable' (N/A) values. With the inputs below, whenever 'Add Hotel Reservation = Do not add' appears in your set of tests, 'Type of Hotel = N/A (skip - no hotel reservation)' appears with it, and vice-versa. All other values from 'Add Hotel Reservation' can no longer pair with 'Type of Hotel = N/A (skip - no hotel reservation),' and all other values from 'Type of Hotel' can no longer pair with 'Add Hotel Reservation = Do not add.'

Take a look in the top left of the image above. This indicates that 'Add Hotel Reservation = Do not add' will only ever pair with 'Type of Hotel = N/A (skip - no hotel reservation)' when Hexawise pairs values between 'Add Hotel Reservation' and 'Type of Hotel.'

Just like with the other types of married pairs, values from 'No-Smoking Room' pair normally with values from 'Add Hotel Reservation' and 'Type of Hotel' because 'No-Smoking Room'' is not involved with the married pair. Using a similar metaphor as above, the ballroom dancers 'Do not add' and 'N/A (skip - no hotel reservation)' will only take each other's hand to dance, when choosing partners between Add Hotel Reservation' and 'Type of Hotel.'

You may have noticed that 'No-Smoking Room? = N/A (skip - no hotel reservation)' wouldn't make sense with 'Add Hotel Reservation = Add hotel.' Good eye! This should also have a bi-directional married pair between itself and 'Add Hotel Reservation = Do not add.' Let's do it!

Hexawise automatically recognizes that 'Add Hotel Reservation = Do not add' already has a married pair with 'Type of Hotel = N/A (skip - no hotel reservation).' Not only will the married pair between 'Add Hotel Reservation = Do not add' and 'No-Smoking Room? = N/A (skip - no hotel reservation)' be generated, 'No-Smoking Room? = N/A (skip - no hotel reservation)' will automatically be assigned to a married pair with 'Type of Hotel = N/A (skip - no hotel reservation).'

In essence, married pairs do a similar task as invalid pairs: they ensure that certain values only appear together or separately, respectively. From a different point of view, married pairs actually invalidatemany values and invalid pairs marry many values, behind the scenes.

Did this answer your question?