testTransformChildMapUnset :: TestTree
testTransformChildMapUnset =
  let dop1 = O.DirectedOperation "foo/bar" $ O.IntInc 1
      dop2 = O.DirectedOperation "" $ O.IntInc 1
      ss1 = O.DirectedOperation "" $ O.MapUnset "foo"
      ss2 = O.DirectedOperation "" $ O.MapUnset "bar" in
  testCase "Transform Child against MapUnset" $ do
    assertEqual "a" (Just dop1) $ T.transformDirected dop1 ss2 T.Left
    assertEqual "b" (Just dop1) $ T.transformDirected dop1 ss2 T.Right
    assertEqual "c" (Just O.directedNoOp) $ T.transformDirected dop1 ss1 T.Left
    assertEqual "d" (Just O.directedNoOp) $ T.transformDirected dop1 ss1 T.Right
    assertEqual "e" Nothing $ T.transformDirected dop2 ss2 T.Left
    assertEqual "f" Nothing $ T.transformDirected dop2 ss2 T.Right
testTransformChildMapUnset :: TestTree
testTransformChildMapUnset =
  let dop1 = O.DirectedOperation "foo/bar" $ O.IntInc 1
      dop2 = O.DirectedOperation "" $ O.IntInc 1
      ss1 = O.DirectedOperation "" $ O.MapUnset "foo"
      ss2 = O.DirectedOperation "" $ O.MapUnset "bar" in
  testCase "Transform Child against MapUnset" $ do
    assertEqual "a" (Just dop1) $ T.transformDirected dop1 ss2 T.Left
    assertEqual "b" (Just dop1) $ T.transformDirected dop1 ss2 T.Right
    assertEqual "c" (Just O.directedNoOp) $ T.transformDirected dop1 ss1 T.Left
    assertEqual "d" (Just O.directedNoOp) $ T.transformDirected dop1 ss1 T.Right
    assertEqual "e" Nothing $ T.transformDirected dop2 ss2 T.Left
    assertEqual "f" Nothing $ T.transformDirected dop2 ss2 T.Right
testTransformChildMapUnset =
  let dop1 = O.DirectedOperation "foo/bar" $ O.IntInc 1
      dop2 = O.DirectedOperation "" $ O.IntInc 1
      ss1 = O.DirectedOperation "" $ O.MapUnset "foo"
      ss2 = O.DirectedOperation "" $ O.MapUnset "bar" in
  testCase "Transform Child against MapUnset" $ do
    assertEqual "a" (Just dop1) $ T.transformDirected dop1 ss2 T.Left
    assertEqual "b" (Just dop1) $ T.transformDirected dop1 ss2 T.Right
    assertEqual "c" (Just O.directedNoOp) $ T.transformDirected dop1 ss1 T.Left
    assertEqual "d" (Just O.directedNoOp) $ T.transformDirected dop1 ss1 T.Right
    assertEqual "e" Nothing $ T.transformDirected dop2 ss2 T.Left
    assertEqual "f" Nothing $ T.transformDirected dop2 ss2 T.Right