public NodeResources unusedCapacityOf(Node host) {
        return availableCapacityOf(host, false, false);
    }
@Test
    public void unusedCapacityOf() {
        assertEquals(new NodeResources(5, 40, 80, 2,
                                       NodeResources.DiskSpeed.fast, NodeResources.StorageType.remote, NodeResources.Architecture.x86_64),
                     capacity.unusedCapacityOf(host1));
        assertEquals(new NodeResources(5, 60, 80, 4.5,
                                       NodeResources.DiskSpeed.fast, NodeResources.StorageType.remote, NodeResources.Architecture.x86_64),
                     capacity.unusedCapacityOf(host3));
        assertEquals(new NodeResources(7, 100, 120, 5,
                                       NodeResources.DiskSpeed.fast, NodeResources.StorageType.remote, NodeResources.Architecture.x86_64),
                     capacity.unusedCapacityOf(host4));

        doAnswer(invocation -> {
            NodeResources totalHostResources = ((Flavor) invocation.getArguments()[0]).resources();
            return totalHostResources.subtract(new NodeResources(1, 2, 3, 0.5, NodeResources.DiskSpeed.any));
        }).when(hostResourcesCalculator).advertisedResourcesOf(any());

        assertEquals(new NodeResources(4, 38, 77, 1.5, NodeResources.DiskSpeed.fast, NodeResources.StorageType.remote, NodeResources.Architecture.x86_64),
                     capacity.unusedCapacityOf(host1));
        assertEquals(new NodeResources(4, 58, 77, 4, NodeResources.DiskSpeed.fast, NodeResources.StorageType.remote, NodeResources.Architecture.x86_64),
                     capacity.unusedCapacityOf(host3));
    }