--TEST--
Partial update from lock file should update everything to the state of the lock, remove overly unstable packages
--COMPOSER--
{
    "repositories": [
        {
            "type": "package",
            "package": [
                { "name": "a/old", "version": "1.0.0" },
                { "name": "a/old", "version": "2.0.0" },
                { "name": "b/unstable", "version": "1.0.0", "require": {"f/dependency": "1.*"} },
                { "name": "b/unstable", "version": "1.1.0-alpha", "require": {"f/dependency": "1.*"} },
                { "name": "c/uptodate", "version": "1.0.0" },
                { "name": "d/removed", "version": "1.0.0" },
                { "name": "e/newreq", "version": "1.0.0" },
                { "name": "f/dependency", "version": "1.1.0" },
                { "name": "f/dependency", "version": "1.0.0" }
            ]
        }
    ],
    "require": {
        "a/old": "*",
        "b/unstable": "*",
        "c/uptodate": "*",
        "e/newreq": "*"
    }
}
--LOCK--
{
    "packages": [
        { "name": "a/old", "version": "1.0.0" },
        { "name": "b/unstable", "version": "1.1.0-alpha", "require": {"f/dependency": "1.*"} },
        { "name": "c/uptodate", "version": "1.0.0" },
        { "name": "d/removed", "version": "1.0.0" },
        { "name": "e/newreq", "version": "1.0.0" },
        { "name": "f/dependency", "version": "1.0.0" }
    ],
    "packages-dev": [],
    "aliases": [],
    "minimum-stability": "stable",
    "stability-flags": {
        "b/unstable": 15
    },
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": [],
    "platform-dev": []
}
--INSTALLED--
[
    { "name": "a/old", "version": "0.9.0" },
    { "name": "b/unstable", "version": "1.1.0-alpha", "require": {"f/dependency": "1.*"} },
    { "name": "c/uptodate", "version": "2.0.0" },
    { "name": "f/dependency", "version": "1.0.0" }
]
--RUN--
update b/unstable
--EXPECT-LOCK--
{
    "packages": [
        { "name": "a/old", "version": "1.0.0", "type": "library" },
        { "name": "b/unstable", "version": "1.0.0", "type": "library", "require": {"f/dependency": "1.*"} },
        { "name": "c/uptodate", "version": "1.0.0", "type": "library" },
        { "name": "e/newreq", "version": "1.0.0", "type": "library" },
        { "name": "f/dependency", "version": "1.0.0", "type": "library" }
    ],
    "packages-dev": [],
    "aliases": [],
    "minimum-stability": "stable",
    "stability-flags": [],
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": [],
    "platform-dev": []
}
--EXPECT--
Upgrading a/old (0.9.0 => 1.0.0)
Downgrading b/unstable (1.1.0-alpha => 1.0.0)
Downgrading c/uptodate (2.0.0 => 1.0.0)
Installing e/newreq (1.0.0)