# Golden test output of FastPathPlanGeneration/SinglePredicateOnTopLevelField

==== VARIATION: equals int ====
-- INPUT:
filter = { a: 1 }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((move(l0.0) == 1) ?: false) }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $eq int ====
-- INPUT:
filter = { a: { $eq: 1 } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((move(l0.0) == 1) ?: false) }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $eq NaN ====
-- INPUT:
filter = { a: { $eq: nan.0 } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { (isNaN(move(l0.0)) ?: false) }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $eq null ====
-- INPUT:
filter = { a: { $eq: null } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((
    if (typeMatch(move(l0.0), 1024) ?: true) 
    then null 
    else move(l0.0) 
== null) ?: false) }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $eq array ====
-- INPUT:
filter = { a: { $eq: [ 1 ] } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((move(l0.0) == [1]) ?: false) }, true)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $eq MinKey ====
-- INPUT:
filter = { a: { $eq: MinKey } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((move(l0.0) == minKey) ?: false) }, true)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $eq MaxKey ====
-- INPUT:
filter = { a: { $eq: MaxKey } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((move(l0.0) == maxKey) ?: false) }, true)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lt int ====
-- INPUT:
filter = { a: { $lt: 1 } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((move(l0.0) < 1) ?: false) }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lt NaN ====
-- INPUT:
filter = { a: { $lt: nan.0 } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { false }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lt null ====
-- INPUT:
filter = { a: { $lt: null } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((
    if (typeMatch(move(l0.0), 1024) ?: true) 
    then null 
    else move(l0.0) 
< null) ?: false) }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lt array ====
-- INPUT:
filter = { a: { $lt: [ 1 ] } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((move(l0.0) < [1]) ?: false) }, true)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lt MinKey ====
-- INPUT:
filter = { a: { $lt: MinKey } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { false }, true)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lt MaxKey ====
-- INPUT:
filter = { a: { $lt: MaxKey } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { !(isMaxKey((move(l0.0) ?: null))) }, true)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lte int ====
-- INPUT:
filter = { a: { $lte: 1 } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((move(l0.0) <= 1) ?: false) }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lte NaN ====
-- INPUT:
filter = { a: { $lte: nan.0 } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { (isNaN(move(l0.0)) ?: false) }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lte null ====
-- INPUT:
filter = { a: { $lte: null } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((
    if (typeMatch(move(l0.0), 1024) ?: true) 
    then null 
    else move(l0.0) 
<= null) ?: false) }, false)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lte array ====
-- INPUT:
filter = { a: { $lte: [ 1 ] } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { ((move(l0.0) <= [1]) ?: false) }, true)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lte MinKey ====
-- INPUT:
filter = { a: { $lte: MinKey } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { isMinKey((move(l0.0) ?: null)) }, true)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 

==== VARIATION: $lte MaxKey ====
-- INPUT:
filter = { a: { $lte: MaxKey } }
-- OUTPUT:
[0] filter {traverseF(s2, lambda(l0.0) { true }, true)} 
[0] scan s1 none none none none none none none lowPriority [s2 = a] @"00000000-0000-0000-0000-000000000000" true false 
