testSubsetOfImpl = function(a, b, c, d) {
      testTwoSetLikeImplInterop((setACtor, setBCtor) => {
        const s = new setACtor([a, b, c]);

        assertTrue('set <= itself', sets.isSubsetOf(s, s));
        assertTrue(
            'set <= same set', sets.isSubsetOf(s, new setBCtor([a, b, c])));
        assertTrue('set <= its clone', sets.isSubsetOf(s, new setBCtor(s)));
        assertTrue(
            'set <= array of same elements', sets.isSubsetOf(s, [a, b, c]));
        assertTrue(
            'set <= array of same elements in different order',
            sets.equals(s, [c, b, a]));

        assertTrue(
            'set <= Set([a, b, c, d])',
            sets.isSubsetOf(s, new setBCtor([a, b, c, d])));
        assertTrue('set <= [a, b, c, d]', sets.isSubsetOf(s, [a, b, c, d]));
        assertTrue('set <= [a, b, c, c]', sets.isSubsetOf(s, [a, b, c, c]));

        assertFalse(
            'set !<= Set([a, b])', sets.isSubsetOf(s, new setBCtor([a, b])));
        assertFalse('set !<= [a, b]', sets.isSubsetOf(s, [a, b]));
        assertFalse(
            'set !<= Set([c, d])', sets.isSubsetOf(s, new setBCtor([c, d])));
        assertFalse('set !<= [c, d]', sets.isSubsetOf(s, [c, d]));
        assertFalse(
            'set !<= Set([a, c, d])',
            sets.isSubsetOf(s, new setBCtor([a, c, d])));
        assertFalse('set !<= [a, c, d]', sets.isSubsetOf(s, [a, c, d]));
        assertFalse('set !<= [a, a, b]', sets.isSubsetOf(s, [a, a, b]));
        assertFalse('set !<= [a, a, b, b]', sets.isSubsetOf(s, [a, a, b, b]));
      });
    }
Helper method for testIsSubsetOf().
@param {?} a First element to use in the tests.
@param {?} b Second element to use in the tests.
@param {?} c Third element to use in the tests.
@param {?} d Fourth element to use in the tests.