Fix European trip return heuristic for weekend location tracking

Adjust European short trip heuristic from >3 days to >1 day to correctly
detect when user has returned home from European trips. This fixes the
April 29-30, 2023 case where the location incorrectly showed "Sankt Georg, Hamburg"
instead of "Bristol" when the user was free (no events scheduled) after
the foss-north trip ended on April 27.

The previous logic required more than 3 days to pass before assuming
return home from European countries, but for short European trips by
rail/ferry, users typically return within 1-2 days.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Edward Betts 2025-07-16 06:38:37 +02:00
parent 663dc479c2
commit ea4980a5d7
6407 changed files with 1072847 additions and 18 deletions

View file

@ -0,0 +1,30 @@
'use strict'
var fib = require('./fib')
var max = 100000000
var start = Date.now()
// create a funcion with the typical error
// pattern, that delegates the heavy load
// to something else
function createNoCodeFunction () {
/* eslint no-constant-condition: "off" */
var num = 100
;(function () {
if (null) {
// do nothing
} else {
fib(num)
}
})()
}
for (var i = 0; i < max; i++) {
createNoCodeFunction()
}
var time = Date.now() - start
console.log('Total time', time)
console.log('Total iterations', max)
console.log('Iteration/s', max / time * 1000)

13
node_modules/reusify/benchmarks/fib.js generated vendored Normal file
View file

@ -0,0 +1,13 @@
'use strict'
function fib (num) {
var fib = []
fib[0] = 0
fib[1] = 1
for (var i = 2; i <= num; i++) {
fib[i] = fib[i - 2] + fib[i - 1]
}
}
module.exports = fib

38
node_modules/reusify/benchmarks/reuseNoCodeFunction.js generated vendored Normal file
View file

@ -0,0 +1,38 @@
'use strict'
var reusify = require('../')
var fib = require('./fib')
var instance = reusify(MyObject)
var max = 100000000
var start = Date.now()
function reuseNoCodeFunction () {
var obj = instance.get()
obj.num = 100
obj.func()
obj.num = 0
instance.release(obj)
}
function MyObject () {
this.next = null
var that = this
this.num = 0
this.func = function () {
/* eslint no-constant-condition: "off" */
if (null) {
// do nothing
} else {
fib(that.num)
}
}
}
for (var i = 0; i < max; i++) {
reuseNoCodeFunction()
}
var time = Date.now() - start
console.log('Total time', time)
console.log('Total iterations', max)
console.log('Iteration/s', max / time * 1000)