describe('Util', function() {
    var util;

    it('#trueObj', function() {
        expect(iD.util.trueObj(['a', 'b', 'c'])).to.eql({ a: true, b: true, c: true });
        expect(iD.util.trueObj([])).to.eql({});
    });

    it('#friendlyName', function() {
        expect(iD.util.friendlyName({ tags: { name: 'hi' }})).to.equal('hi');
        expect(iD.util.friendlyName({ tags: { highway: 'Route 5' }})).to.equal('Route 5');
        expect(iD.util.friendlyName({ tags: { name: 'hi', highway: 'Route 5' }})).to.equal('hi');
    });

    describe('geo', function() {
        describe('#interp', function() {
            it('interpolates halfway', function() {
                var a = [0, 0],
                    b = [10, 10];
                expect(iD.util.geo.interp(a, b, 0.5)).to.eql([5, 5]);
            });
            it('interpolates to one side', function() {
                var a = [0, 0],
                    b = [10, 10];
                expect(iD.util.geo.interp(a, b, 0)).to.eql([0, 0]);
            });
        });

        describe('#dist', function() {
            it('distance between two same points is zero', function() {
                var a = [0, 0],
                    b = [0, 0];
                expect(iD.util.geo.dist(a, b)).to.eql(0);
            });
            it('a straight 10 unit line is 10', function() {
                var a = [0, 0],
                    b = [10, 0];
                expect(iD.util.geo.dist(a, b)).to.eql(10);
            });
            it('a pythagorean triangle is right', function() {
                var a = [0, 0],
                    b = [4, 3];
                expect(iD.util.geo.dist(a, b)).to.eql(5);
            });
        });
    });
});
