@Test
public void testSimpleOperators() throws Exception {

    JsonNode params = JacksonProvider.mapper.readTree("{\"policySelection\":[" +
        "{\"policy\":\"floorwarmth10\",\"property\":\"warmth\",\"operator\":\">\"}," +
        "{\"policy\":\"floorwarmth30\",\"property\":\"warmth\",\"operator\":\"<\"}]}");
    Criteria fulfillPolicies = new FulfillPolicies(params, Integer.MAX_VALUE);
    List<TopologyWrapper> allocatedTopologies = fulfillPolicies.allocate(topology);
    assertEquals(4, allocatedTopologies.size());
    TopologyWrapper allocated1 = allocatedTopologies.get(0);
    TopologyWrapper allocated2 = allocatedTopologies.get(1);
    TopologyWrapper allocated3 = allocatedTopologies.get(2);
    TopologyWrapper allocated4 = allocatedTopologies.get(3);
    assertEquals(8, allocated1.getNodeTemplates().size());
    assertEquals(8, allocated2.getNodeTemplates().size());
    assertEquals(8, allocated3.getNodeTemplates().size());
    assertEquals(8, allocated4.getNodeTemplates().size());
    List<String> targetLabels1 = getTargetLabels(allocated1);
    List<String> targetLabels2 = getTargetLabels(allocated2);
    List<String> targetLabels3 = getTargetLabels(allocated3);
    List<String> targetLabels4 = getTargetLabels(allocated4);
    assertEquals(3, targetLabels1.stream().filter("PastureProvider"::equalsIgnoreCase).count());
    assertEquals(1, targetLabels1.stream().filter("FieldProvider"::equalsIgnoreCase).count());
    assertEquals(2, targetLabels2.stream().filter("PastureProvider"::equalsIgnoreCase).count());
    assertEquals(2, targetLabels2.stream().filter("FieldProvider"::equalsIgnoreCase).count());
    assertEquals(2, targetLabels3.stream().filter("PastureProvider"::equalsIgnoreCase).count());
    assertEquals(2, targetLabels3.stream().filter("FieldProvider"::equalsIgnoreCase).count());
    assertEquals(1, targetLabels4.stream().filter("PastureProvider"::equalsIgnoreCase).count());
    assertEquals(3, targetLabels4.stream().filter("FieldProvider"::equalsIgnoreCase).count());
}