Publish Vulpes Preview 15 sources for desktop, Android and Tundra

Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

View file

@ -0,0 +1,358 @@
define(function(require) {
'use strict';
var Calc = require('common/calc');
var Timespan = require('common/timespan');
suite('timespan', function() {
var subject;
var startDate;
var endDate;
setup(function() {
startDate = new Date(2012, 1, 1);
endDate = new Date(2012, 12, 1);
subject = new Timespan(
startDate,
endDate
);
});
test('initializer', function() {
assert.equal(
subject.start,
startDate.valueOf()
);
assert.equal(
subject.end,
endDate.valueOf()
);
});
test('#isEqual', function() {
var span = new Timespan(
new Date(2012, 1, 1),
new Date(2012, 1, 5)
);
var eqlSpan = new Timespan(
new Date(2012, 1, 1),
new Date(2012, 1, 5)
);
var notEqualSpan = new Timespan(
new Date(2012, 1, 1),
new Date(2012, 1, 6)
);
assert.isTrue(span.isEqual(eqlSpan));
assert.isFalse(span.isEqual(notEqualSpan));
});
test('#daysBetween', function() {
var range = new Timespan(
new Date(2012, 1, 1),
new Date(2012, 1, 3)
);
var dates = Calc.daysBetween(range);
assert.deepEqual(
dates[0],
new Date(2012, 1, 1)
);
assert.deepEqual(
dates[1],
new Date(2012, 1, 2)
);
assert.deepEqual(
dates[2],
new Date(2012, 1, 3)
);
});
suite('#trimOverlap', function() {
var before;
var subject;
var none;
setup(function() {
none = new Timespan(
new Date(2012, 5, 1),
new Date(2012, 5, 15)
);
before = new Timespan(
// July 1
new Date(2012, 6, 1),
// Aug 4th
new Date(2012, 7, 4)
);
subject = new Timespan(
// July 29th
new Date(2012, 6, 29),
// Aug 31
new Date(2012, 7, 31)
);
});
test('middle', function() {
var long = new Timespan(
new Date(2012, 0, 1),
new Date(2012, 0, 31)
);
var short = new Timespan(
new Date(2012, 0, 5),
new Date(2012, 0, 10)
);
assert.isNull(
long.trimOverlap(short),
'should return null subject contains given'
);
assert.isNull(
short.trimOverlap(long),
'should return null when given contains subject'
);
});
test('no overlap', function() {
var out = before.trimOverlap(none);
assert.deepEqual(out, none);
});
test('overlaps && input.end > subject.start', function() {
var output = subject.trimOverlap(
before
);
var start = new Date(2012, 6, 1);
var end = new Date(
2012, 6, 29
);
end.setMilliseconds(-1);
var expected = new Timespan(
start, end
);
assert.deepEqual(output, expected);
});
test('overlaps && subject.end > input.start', function() {
var output = before.trimOverlap(
subject
);
var start = new Date(2012, 7, 4);
start.setMilliseconds(
start.getMilliseconds() + 1
);
var end = new Date(
2012, 7, 31
);
var expected = new Timespan(
start, end
);
assert.deepEqual(output, expected);
});
});
suite('#overlaps', function() {
var dates;
suiteSetup(function() {
dates = {
'range: inside': {
assert: true,
value: new Timespan(
startDate,
endDate
)
},
'range: starts on end date': {
assert: false,
value: new Timespan(
endDate,
new Date(2015, 1, 1)
)
},
'range: outside before': {
assert: false,
value: new Timespan(
new Date(1991, 1, 1),
new Date(2000, 1, 1)
)
},
'range: outside after': {
assert: false,
value: new Timespan(
new Date(2015, 1, 1),
new Date(2016, 1, 1)
)
},
'range: greater': {
assert: true,
value: new Timespan(
new Date(2011, 12, 31),
new Date(2012, 12, 2)
)
},
'range overlap: start before': {
assert: true,
value: new Timespan(
new Date(2011, 1, 1),
new Date(2012, 1, 15)
)
},
'range overlap: end before': {
assert: true,
value: new Timespan(
new Date(2012, 1, 2),
new Date(2012, 11, 12)
)
}
};
});
test('overlaping times', function() {
var key;
for (key in dates) {
if (dates.hasOwnProperty(key)) {
var value = dates[key].value;
assert.equal(
subject.overlaps(value),
dates[key].assert,
key
);
}
}
});
test('overlaping times as dates', function() {
var key;
for (key in dates) {
if (dates.hasOwnProperty(key)) {
var value = dates[key].value;
var start = new Date(value.start);
var end = new Date(value.end);
assert.equal(
subject.overlaps(start, end),
dates[key].assert,
key
);
}
}
});
});
suite('#contains', function() {
var dates;
suiteSetup(function() {
dates = {
'day of': {
assert: true,
value: new Date(2012, 1, 1)
},
'one day after': {
assert: true,
value: new Date(2012, 1, 2)
},
'day of end range': {
assert: true,
value: new Date(2012, 12, 1)
},
'day before range': {
assert: false,
value: new Date(2011, 12, 31)
},
'day after range': {
assert: false,
value: new Date(2012, 12, 2)
}
};
});
test('timespan in range', function() {
var span = new Timespan(
new Date(2012, 1, 1),
new Date(2012, 1, 5)
);
assert.isTrue(
subject.contains(span)
);
assert.isFalse(
span.contains(subject)
);
});
function testWith(method, useNumeric) {
var key;
var prefix = '';
if (useNumeric) {
prefix += '[numeric] ';
}
prefix += method;
for (key in dates) {
if (dates.hasOwnProperty(key)) {
var value = dates[key].value.valueOf();
if (useNumeric) {
value = value.valueOf();
}
assert.equal(
subject.contains(value),
dates[key].assert,
prefix + key
);
}
}
}
test('numeric (contains)', function() {
testWith('contains', true);
});
test('numeric (containsNumeric)', function() {
testWith('containsNumeric', true);
});
test('date', function() {
testWith('contains', false);
});
});
});
});