#69 : Update getPartialPageSize
This commit is contained in:
@@ -5,12 +5,6 @@ export const getDistance = (p1, p2) => {
|
|||||||
return Math.sqrt((xDist * xDist) + (yDist * yDist));
|
return Math.sqrt((xDist * xDist) + (yDist * yDist));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3 => true
|
|
||||||
export function getIsOdd(num) {
|
|
||||||
return Boolean(num % 2)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// TODO: determine when partial offset is needed and apply partial offset
|
// TODO: determine when partial offset is needed and apply partial offset
|
||||||
// TODO: determine how many clones should be from both sides
|
// TODO: determine how many clones should be from both sides
|
||||||
|
|
||||||
@@ -24,48 +18,38 @@ export function getPartialPageSize({
|
|||||||
pagesToShow,
|
pagesToShow,
|
||||||
pagesCountWithoutClones
|
pagesCountWithoutClones
|
||||||
}) {
|
}) {
|
||||||
|
const overlap = pagesToScroll - pagesToShow
|
||||||
console.log('getPartialPageSize ==>', pagesToScroll, pagesToShow, pagesCountWithoutClones)
|
|
||||||
|
|
||||||
if (pagesToShow <= pagesToScroll) {
|
|
||||||
const overlap = pagesToShow - pagesToScroll
|
|
||||||
|
|
||||||
const d = (Math.max(pagesToShow-pagesToScroll), pagesToShow)
|
|
||||||
// console.log('overlap', overlap)
|
|
||||||
let _pages = d
|
|
||||||
// console.log('pages', _pages)
|
|
||||||
|
|
||||||
while(true) {
|
|
||||||
// let fp = _pages - overlap
|
|
||||||
_pages = _pages - overlap + d
|
|
||||||
// console.log('pages', _pages)
|
|
||||||
const diff = pagesCountWithoutClones - _pages
|
|
||||||
if (diff < pagesToShow) {
|
|
||||||
// console.log('diff', diff)
|
|
||||||
// console.log('pagesToShow - diff', pagesToShow - Math.abs(diff) - overlap)
|
|
||||||
const res = diff + overlap
|
|
||||||
if (res < 0) {
|
|
||||||
return pagesToShow - overlap + res
|
|
||||||
}
|
|
||||||
console.log(res, diff)
|
|
||||||
return diff !== 0 ? Math.min(res, diff) : res
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const overlap = pagesToShow - pagesToScroll
|
|
||||||
|
|
||||||
// console.log('overlap', overlap)
|
|
||||||
let _pages = pagesToShow
|
let _pages = pagesToShow
|
||||||
console.log('pages', _pages)
|
|
||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
const diff = pagesCountWithoutClones - _pages + overlap
|
const diff = pagesCountWithoutClones - _pages - overlap
|
||||||
if (diff < pagesToShow) {
|
if (diff < pagesToShow) {
|
||||||
return diff
|
return diff
|
||||||
}
|
}
|
||||||
_pages += pagesToShow - overlap
|
_pages += pagesToShow + overlap
|
||||||
console.log('pages', _pages)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// if (pagesToShow <= pagesToScroll) {
|
||||||
|
// const overlap = pagesToScroll - pagesToShow
|
||||||
|
// let _pages = pagesToShow
|
||||||
|
|
||||||
|
// while(true) {
|
||||||
|
// const diff = pagesCountWithoutClones - _pages - overlap
|
||||||
|
// if (diff < pagesToShow) {
|
||||||
|
// return diff
|
||||||
|
// }
|
||||||
|
// _pages += pagesToShow + overlap
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// const overlap = pagesToShow - pagesToScroll
|
||||||
|
// let _pages = pagesToShow
|
||||||
|
// while(true) {
|
||||||
|
// const diff = pagesCountWithoutClones - _pages + overlap
|
||||||
|
// if (diff < pagesToShow) {
|
||||||
|
// return diff
|
||||||
|
// }
|
||||||
|
// _pages += pagesToShow - overlap
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,88 +23,95 @@ describe('getPartialPageSize', () => {
|
|||||||
|
|
||||||
it('getPartialPageSize', () => {
|
it('getPartialPageSize', () => {
|
||||||
// ==== pagesToShow <= pagesToScroll
|
// ==== pagesToShow <= pagesToScroll
|
||||||
// const r1 = getPartialPageSize({
|
const r0 = getPartialPageSize({
|
||||||
// pagesCount: 15,
|
pagesCountWithoutClones: 9,
|
||||||
// pagesToShow: 4,
|
pagesToShow: 2,
|
||||||
// pagesToScroll: 5,
|
pagesToScroll: 3,
|
||||||
// })
|
})
|
||||||
// expect(r1).toBe(0)
|
expect(r0).toBe(0)
|
||||||
|
|
||||||
// const r2 = getPartialPageSize({
|
const r1 = getPartialPageSize({
|
||||||
// pagesCount: 16,
|
pagesCountWithoutClones: 15,
|
||||||
// pagesToShow: 4,
|
pagesToShow: 4,
|
||||||
// pagesToScroll: 5,
|
pagesToScroll: 5,
|
||||||
// })
|
})
|
||||||
// expect(r2).toBe(1)
|
expect(r1).toBe(0)
|
||||||
|
|
||||||
// const r3 = getPartialPageSize({
|
const r2 = getPartialPageSize({
|
||||||
// pagesCount: 17,
|
pagesCountWithoutClones: 16,
|
||||||
// pagesToShow: 4,
|
pagesToShow: 4,
|
||||||
// pagesToScroll: 5,
|
pagesToScroll: 5,
|
||||||
// })
|
})
|
||||||
// expect(r3).toBe(2)
|
expect(r2).toBe(1)
|
||||||
|
|
||||||
// const r4 = getPartialPageSize({
|
const r3 = getPartialPageSize({
|
||||||
// pagesCount: 18,
|
pagesCountWithoutClones: 17,
|
||||||
// pagesToShow: 4,
|
pagesToShow: 4,
|
||||||
// pagesToScroll: 5,
|
pagesToScroll: 5,
|
||||||
// })
|
})
|
||||||
// expect(r4).toBe(3)
|
expect(r3).toBe(2)
|
||||||
|
|
||||||
// const r5 = getPartialPageSize({
|
const r4 = getPartialPageSize({
|
||||||
// pagesCount: 8,
|
pagesCountWithoutClones: 18,
|
||||||
// pagesToShow: 2,
|
pagesToShow: 4,
|
||||||
// pagesToScroll: 2,
|
pagesToScroll: 5,
|
||||||
// })
|
})
|
||||||
// expect(r5).toBe(0)
|
expect(r4).toBe(3)
|
||||||
|
|
||||||
|
const r5 = getPartialPageSize({
|
||||||
|
pagesCountWithoutClones: 8,
|
||||||
|
pagesToShow: 2,
|
||||||
|
pagesToScroll: 2,
|
||||||
|
})
|
||||||
|
expect(r5).toBe(0)
|
||||||
|
|
||||||
// ====== pagesToScroll < pagesToShow
|
// ====== pagesToScroll < pagesToShow
|
||||||
|
|
||||||
// const r6 = getPartialPageSize({
|
const r6 = getPartialPageSize({
|
||||||
// pagesCount: 8,
|
pagesCountWithoutClones: 8,
|
||||||
// pagesToShow: 4,
|
pagesToShow: 4,
|
||||||
// pagesToScroll: 2,
|
pagesToScroll: 2,
|
||||||
// })
|
})
|
||||||
// expect(r6).toBe(2)
|
expect(r6).toBe(2)
|
||||||
|
|
||||||
// const r7 = getPartialPageSize({
|
const r7 = getPartialPageSize({
|
||||||
// pagesCount: 7,
|
pagesCountWithoutClones: 7,
|
||||||
// pagesToShow: 4,
|
pagesToShow: 4,
|
||||||
// pagesToScroll: 3,
|
pagesToScroll: 3,
|
||||||
// })
|
})
|
||||||
// expect(r7).toBe(1)
|
expect(r7).toBe(1)
|
||||||
|
|
||||||
// const r8 = getPartialPageSize({
|
const r8 = getPartialPageSize({
|
||||||
// pagesCount: 8,
|
pagesCountWithoutClones: 8,
|
||||||
// pagesToShow: 4,
|
pagesToShow: 4,
|
||||||
// pagesToScroll: 3,
|
pagesToScroll: 3,
|
||||||
// })
|
})
|
||||||
// expect(r8).toBe(2)
|
expect(r8).toBe(2)
|
||||||
|
|
||||||
// const r9 = getPartialPageSize({
|
const r9 = getPartialPageSize({
|
||||||
// pagesCount: 8,
|
pagesCountWithoutClones: 8,
|
||||||
// pagesToShow: 2,
|
pagesToShow: 2,
|
||||||
// pagesToScroll: 2,
|
pagesToScroll: 2,
|
||||||
// })
|
})
|
||||||
// expect(r9).toBe(0)
|
expect(r9).toBe(0)
|
||||||
|
|
||||||
// const r10 = getPartialPageSize({
|
const r10 = getPartialPageSize({
|
||||||
// pagesCount: 9,
|
pagesCountWithoutClones: 9,
|
||||||
// pagesToShow: 4,
|
pagesToShow: 4,
|
||||||
// pagesToScroll: 3,
|
pagesToScroll: 3,
|
||||||
// })
|
})
|
||||||
// expect(r10).toBe(3)
|
expect(r10).toBe(3)
|
||||||
|
|
||||||
// const r11 = getPartialPageSize({
|
const r11 = getPartialPageSize({
|
||||||
// pagesCount: 8,
|
pagesCountWithoutClones: 8,
|
||||||
// pagesToShow: 3,
|
pagesToShow: 3,
|
||||||
// pagesToScroll: 2,
|
pagesToScroll: 2,
|
||||||
// })
|
})
|
||||||
// expect(r11).toBe(2)
|
expect(r11).toBe(2)
|
||||||
|
|
||||||
|
|
||||||
const r12 = getPartialPageSize({
|
const r12 = getPartialPageSize({
|
||||||
pagesCount: 6,
|
pagesCountWithoutClones: 6,
|
||||||
pagesToShow: 3,
|
pagesToShow: 3,
|
||||||
pagesToScroll: 1,
|
pagesToScroll: 1,
|
||||||
})
|
})
|
||||||
@@ -112,7 +119,7 @@ describe('getPartialPageSize', () => {
|
|||||||
|
|
||||||
|
|
||||||
const r13 = getPartialPageSize({
|
const r13 = getPartialPageSize({
|
||||||
pagesCount: 7,
|
pagesCountWithoutClones: 7,
|
||||||
pagesToShow: 3,
|
pagesToShow: 3,
|
||||||
pagesToScroll: 1,
|
pagesToScroll: 1,
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user