Best JavaScript code snippet using wpt
AABB.test.ts
Source:AABB.test.ts
1import { AABB } from './AABB'2import { Ray } from './Ray'3import { Vec3 } from '../math/Vec3'4import { Quaternion } from '../math/Quaternion'5import { Transform } from '../math/Transform'6describe('AABB', () => {7 test('construct', () => {8 const a = new AABB()9 expect(a).toBeDefined()10 })11 test('setFromPoints', () => {12 const a = new AABB()13 const points = [14 new Vec3(7, 0, 1),15 new Vec3(2, -1, 5),16 new Vec3(-1, -7, 0),17 new Vec3(4, 5, -9),18 new Vec3(-5, 8, 2),19 new Vec3(-3, -2, -1),20 new Vec3(5, 3, 6),21 ]22 expect(a.setFromPoints(points)).toBe(a)23 expect(a).toMatchObject(24 new AABB({25 lowerBound: new Vec3(-5, -7, -9),26 upperBound: new Vec3(7, 8, 6),27 })28 )29 const position = new Vec3(1, 2, 3)30 a.setFromPoints(points, position)31 expect(a).toMatchObject(32 new AABB({33 lowerBound: new Vec3(-4, -5, -6),34 upperBound: new Vec3(8, 10, 9),35 })36 )37 const quaternion = new Quaternion().setFromAxisAngle(new Vec3(1, 0, 0), Math.PI)38 a.setFromPoints(points, position, quaternion)39 expect(a).toMatchObject(40 new AABB({41 lowerBound: new Vec3(-4, -6, -3),42 upperBound: new Vec3(8, 9, 12),43 })44 )45 const skinSize = 146 a.setFromPoints(points, position, quaternion, skinSize)47 expect(a).toMatchObject(48 new AABB({49 lowerBound: new Vec3(-5, -7, -4),50 upperBound: new Vec3(9, 10, 13),51 })52 )53 })54 test('copy', () => {55 const a = new AABB()56 const b = new AABB()57 a.upperBound.set(1, 2, 3)58 a.lowerBound.set(4, 5, 6)59 expect(b.copy(a)).toBe(b)60 expect(b).toMatchObject(a)61 expect(b).not.toBe(a)62 })63 test('clone', () => {64 const a = new AABB({65 lowerBound: new Vec3(-1, -2, -3),66 upperBound: new Vec3(1, 2, 3),67 })68 const b = a.clone()69 expect(a).not.toBe(b)70 expect(b).toMatchObject(a)71 })72 test('extend', () => {73 const a = new AABB({74 lowerBound: new Vec3(-1, -1, -1),75 upperBound: new Vec3(1, 1, 1),76 })77 const b = new AABB({78 lowerBound: new Vec3(-2, -2, -2),79 upperBound: new Vec3(2, 2, 2),80 })81 a.extend(b)82 expect(a).toMatchObject(b)83 const c = new AABB({84 lowerBound: new Vec3(-1, -1, -1),85 upperBound: new Vec3(1, 1, 1),86 })87 const d = new AABB({88 lowerBound: new Vec3(-2, -2, -2),89 upperBound: new Vec3(2, 2, 2),90 })91 d.extend(c)92 expect(d.lowerBound).toMatchObject(new Vec3(-2, -2, -2))93 expect(d.upperBound).toMatchObject(new Vec3(2, 2, 2))94 const e = new AABB({95 lowerBound: new Vec3(-2, -1, -1),96 upperBound: new Vec3(2, 1, 1),97 })98 const f = new AABB({99 lowerBound: new Vec3(-1, -1, -1),100 upperBound: new Vec3(1, 1, 1),101 })102 f.extend(e)103 expect(e.lowerBound).toMatchObject(new Vec3(-2, -1, -1))104 expect(e.upperBound).toMatchObject(new Vec3(2, 1, 1))105 const g = new AABB({106 lowerBound: new Vec3(-5, -3, -2),107 upperBound: new Vec3(-3, -1, -1),108 })109 const h = new AABB({110 lowerBound: new Vec3(-2, -5, -1.5),111 upperBound: new Vec3(2, -2, 5),112 })113 g.extend(h)114 expect(g.lowerBound).toMatchObject(new Vec3(-5, -5, -2))115 expect(g.upperBound).toMatchObject(new Vec3(2, -1, 5))116 })117 test('overlaps', () => {118 const a = new AABB()119 const b = new AABB()120 //Same aabb121 a.lowerBound.set(-1, -1, 0)122 a.upperBound.set(1, 1, 0)123 b.lowerBound.set(-1, -1, 0)124 b.upperBound.set(1, 1, 0)125 expect(a.overlaps(b)).toBe(true)126 //Corner overlaps127 b.lowerBound.set(1, 1, 0)128 b.upperBound.set(2, 2, 0)129 expect(a.overlaps(b)).toBe(true)130 //Separate131 b.lowerBound.set(1.1, 1.1, 0)132 expect(a.overlaps(b)).toBe(false)133 //fully inside134 b.lowerBound.set(-0.5, -0.5, 0)135 b.upperBound.set(0.5, 0.5, 0)136 expect(a.overlaps(b)).toBe(true)137 b.lowerBound.set(-1.5, -1.5, 0)138 b.upperBound.set(1.5, 1.5, 0)139 expect(a.overlaps(b)).toBe(true)140 //Translated141 b.lowerBound.set(-3, -0.5, 0)142 b.upperBound.set(-2, 0.5, 0)143 expect(a.overlaps(b)).toBe(false)144 })145 test('volume', () => {146 const a = new AABB({147 lowerBound: new Vec3(-1, -2, -3),148 upperBound: new Vec3(1, 2, 3),149 })150 expect(a.volume()).toBe(2 * 4 * 6)151 })152 test('contains', () => {153 const a = new AABB()154 const b = new AABB()155 a.lowerBound.set(-1, -1, -1)156 a.upperBound.set(1, 1, 1)157 b.lowerBound.set(-1, -1, -1)158 b.upperBound.set(1, 1, 1)159 expect(a.contains(b)).toBe(true)160 a.lowerBound.set(-2, -2, -2)161 a.upperBound.set(2, 2, 2)162 expect(a.contains(b)).toBe(true)163 b.lowerBound.set(-3, -3, -3)164 b.upperBound.set(3, 3, 3)165 expect(a.contains(b)).toBe(false)166 a.lowerBound.set(0, 0, 0)167 a.upperBound.set(2, 2, 2)168 b.lowerBound.set(-1, -1, -1)169 b.upperBound.set(1, 1, 1)170 expect(a.contains(b)).toBe(false)171 })172 test('toLocalFrame', () => {173 const worldAABB = new AABB()174 const localAABB = new AABB()175 const frame = new Transform()176 worldAABB.lowerBound.set(-1, -1, -1)177 worldAABB.upperBound.set(1, 1, 1)178 //No transform - should stay the same179 worldAABB.toLocalFrame(frame, localAABB)180 expect(localAABB).toMatchObject(worldAABB)181 //Some translation182 frame.position.set(-1, 0, 0)183 worldAABB.toLocalFrame(frame, localAABB)184 expect(localAABB).toMatchObject(185 new AABB({186 lowerBound: new Vec3(0, -1, -1),187 upperBound: new Vec3(2, 1, 1),188 })189 )190 })191 test('toWorldFrame', () => {192 const localAABB = new AABB()193 const worldAABB = new AABB()194 const frame = new Transform()195 localAABB.lowerBound.set(-1, -1, -1)196 localAABB.upperBound.set(1, 1, 1)197 //No transform - should stay the same198 localAABB.toLocalFrame(frame, worldAABB)199 expect(localAABB).toMatchObject(worldAABB)200 //Some translation on the frame201 frame.position.set(1, 0, 0)202 localAABB.toWorldFrame(frame, worldAABB)203 expect(worldAABB).toMatchObject(204 new AABB({205 lowerBound: new Vec3(0, -1, -1),206 upperBound: new Vec3(2, 1, 1),207 })208 )209 })...
slots.ts
Source:slots.ts
1import dayjs, { Dayjs } from "dayjs";2import timezone from "dayjs/plugin/timezone";3import utc from "dayjs/plugin/utc";4dayjs.extend(utc);5dayjs.extend(timezone);6type WorkingHour = {7 days: number[];8 startTime: number;9 endTime: number;10};11type GetSlots = {12 inviteeDate: Dayjs;13 frequency: number;14 workingHours: WorkingHour[];15 minimumBookingNotice?: number;16 organizerTimeZone: string;17};18type Boundary = {19 lowerBound: number;20 upperBound: number;21};22const freqApply = (cb, value: number, frequency: number): number => cb(value / frequency) * frequency;23const intersectBoundary = (a: Boundary, b: Boundary) => {24 if (a.upperBound < b.lowerBound || a.lowerBound > b.upperBound) {25 return;26 }27 return {28 lowerBound: Math.max(b.lowerBound, a.lowerBound),29 upperBound: Math.min(b.upperBound, a.upperBound),30 };31};32// say invitee is -60,1380, and boundary is -120,240 - the overlap is -60,24033const getOverlaps = (inviteeBoundary: Boundary, boundaries: Boundary[]) =>34 boundaries.map((boundary) => intersectBoundary(inviteeBoundary, boundary)).filter(Boolean);35const organizerBoundaries = (36 workingHours: [],37 inviteeDate: Dayjs,38 inviteeBounds: Boundary,39 organizerTimeZone40): Boundary[] => {41 const boundaries: Boundary[] = [];42 const startDay: number = +inviteeDate.startOf("d").add(inviteeBounds.lowerBound, "minutes").format("d");43 const endDay: number = +inviteeDate.startOf("d").add(inviteeBounds.upperBound, "minutes").format("d");44 workingHours.forEach((item) => {45 const lowerBound: number = item.startTime - dayjs().tz(organizerTimeZone).utcOffset();46 const upperBound: number = item.endTime - dayjs().tz(organizerTimeZone).utcOffset();47 if (startDay !== endDay) {48 if (inviteeBounds.lowerBound < 0) {49 // lowerBound edges into the previous day50 if (item.days.includes(startDay)) {51 boundaries.push({ lowerBound: lowerBound - 1440, upperBound: upperBound - 1440 });52 }53 if (item.days.includes(endDay)) {54 boundaries.push({ lowerBound, upperBound });55 }56 } else {57 // upperBound edges into the next day58 if (item.days.includes(endDay)) {59 boundaries.push({ lowerBound: lowerBound + 1440, upperBound: upperBound + 1440 });60 }61 if (item.days.includes(startDay)) {62 boundaries.push({ lowerBound, upperBound });63 }64 }65 } else {66 if (item.days.includes(startDay)) {67 boundaries.push({ lowerBound, upperBound });68 }69 }70 });71 return boundaries;72};73const inviteeBoundary = (startTime: number, utcOffset: number, frequency: number): Boundary => {74 const upperBound: number = freqApply(Math.floor, 1440 - utcOffset, frequency);75 const lowerBound: number = freqApply(Math.ceil, startTime - utcOffset, frequency);76 return {77 lowerBound,78 upperBound,79 };80};81const getSlotsBetweenBoundary = (frequency: number, { lowerBound, upperBound }: Boundary) => {82 const slots: Dayjs[] = [];83 for (let minutes = 0; lowerBound + minutes <= upperBound - frequency; minutes += frequency) {84 slots.push(85 dayjs86 .utc()87 .startOf("d")88 .add(lowerBound + minutes, "minutes")89 );90 }91 return slots;92};93const getSlots = ({94 inviteeDate,95 frequency,96 minimumBookingNotice,97 workingHours,98 organizerTimeZone,99}: GetSlots): Dayjs[] => {100 // current date in invitee tz101 const currentDate = dayjs().utcOffset(inviteeDate.utcOffset());102 const startDate = currentDate.add(minimumBookingNotice, "minutes"); // + minimum notice period103 const startTime = startDate.isAfter(inviteeDate)104 ? // block out everything when inviteeDate is less than startDate105 startDate.diff(inviteeDate, "day") > 0106 ? 1440107 : startDate.hour() * 60 + startDate.minute()108 : 0;109 const inviteeBounds = inviteeBoundary(startTime, inviteeDate.utcOffset(), frequency);110 return getOverlaps(111 inviteeBounds,112 organizerBoundaries(workingHours, inviteeDate, inviteeBounds, organizerTimeZone)113 )114 .reduce((slots, boundary: Boundary) => [...slots, ...getSlotsBetweenBoundary(frequency, boundary)], [])115 .map((slot) =>116 slot.utcOffset(inviteeDate.utcOffset()).month(inviteeDate.month()).date(inviteeDate.date())117 );118};...
Using AI Code Generation
1var wpt = require('./wpt.js');2var arr = [1,2,3,4,5,6,7,8,9];3var index = wpt.lowerBound(arr, 5);4module.exports = {5 lowerBound: function(arr, val) {6 var low = 0, high = arr.length;7 while (low < high) {8 var mid = Math.floor((low + high) / 2);9 if (arr[mid] < val) {10 low = mid + 1;11 } else {12 high = mid;13 }14 }15 return low;16 }17}
Using AI Code Generation
1var wptools = require('wptools');2var options = {3};4var wp = new wptools.page('Barack Obama', options);5wp.get(function(err, response) {6 var lowerBound = wp.lowerBound('infobox', 'date of birth');7 console.log('lowerBound: ' + lowerBound);8});9var wptools = require('wptools');10var options = {11};12var wp = new wptools.page('Barack Obama', options);13wp.get(function(err, response) {14 var upperBound = wp.upperBound('infobox', 'date of birth');15 console.log('upperBound: ' + upperBound);16});17var wptools = require('wptools');18var options = {19};20var wp = new wptools.page('Barack Obama', options);21wp.get(function(err, response) {22 var sections = wp.getSections();23 console.log('sections: ' + sections);24});25var wptools = require('wptools');26var options = {27};28var wp = new wptools.page('Barack Obama', options);29wp.get(function(err, response) {30 var images = wp.getImages();31 console.log('images: ' + images);32});33var wptools = require('wptools');34var options = {35};36var wp = new wptools.page('Barack Obama', options);37wp.get(function(err, response) {38 var links = wp.getLinks();39 console.log('links: ' + links);40});41var wptools = require('wptools');42var options = {
Using AI Code Generation
1var wpt = require('wpt.js');2var arr = [1,2,3,4,5,6,7,8,9,10];3var num = 5;4var index = wpt.lowerBound(arr, num);5console.log("index = " + index);6var wpt = require('wpt.js');7var arr = [1,2,3,4,5,6,7,8,9,10];8var num = 5;9var index = wpt.upperBound(arr, num);10console.log("index = " + index);11var wpt = require('wpt.js');12var arr = [1,2,3,4,5,6,7,8,9,10];13var num = 5;14var index = wpt.binarySearch(arr, num);15console.log("index = " + index);16var wpt = require('wpt.js');17var arr = [1,2,3,4,5,6,7,8,9,10];18var num = 5;19var index = wpt.lowerBound(arr, num, function(a, b) {20 return a - b;21});22console.log("index = " + index);23var wpt = require('wpt.js');24var arr = [1,2,3,4,5,6,7,8,9,10];25var num = 5;26var index = wpt.upperBound(arr, num, function(a, b) {27 return a - b;28});29console.log("index = " + index);30var wpt = require('wpt.js');
Using AI Code Generation
1var wpt = require('wpt');2var wpt = new WebPageTest('www.webpagetest.org');3 if (err) return console.error(err);4 console.log(data);5});6var wpt = require('wpt');7var wpt = new WebPageTest('www.webpagetest.org');8 if (err) return console.error(err);9 console.log(data);10});11var wpt = require('wpt');12var wpt = new WebPageTest('www.webpagetest.org');13 if (err) return console.error(err);14 console.log(data);15});16var wpt = require('wpt');17var wpt = new WebPageTest('www.webpagetest.org');18 if (err) return console.error(err);19 console.log(data);20});21var wpt = require('wpt');22var wpt = new WebPageTest('www.webpagetest.org');23 if (err) return console.error(err);24 console.log(data);25});26var wpt = require('wpt');27var wpt = new WebPageTest('www.webpagetest.org');
Using AI Code Generation
1var wptree = require('wptree');2var tree = new wptree();3var array = [1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25];4var result = tree.lowerBound(array, 6);5console.log(result);6wptree.upperBound(array, element);7var wptree = require('wptree');8var tree = new wptree();9var array = [1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25];10var result = tree.upperBound(array, 6);11console.log(result);12wptree.binarySearch(array, element);13var wptree = require('wptree');14var tree = new wptree();15var array = [1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25];16var result = tree.binarySearch(array, 6);17console.log(result);
Using AI Code Generation
1var wpt = require('./wpt.js');2var test = wpt.lowerBound([1,2,3,4,5,6,7,8], 5);3console.log(test);4var wpt = require('./wpt.js');5var test = wpt.lowerBound([1,2,3,4,5,6,7,8], 6);6console.log(test);7var wpt = require('./wpt.js');8var test = wpt.lowerBound([1,2,3,4,5,6,7,8], 0);9console.log(test);10var wpt = require('./wpt.js');11var test = wpt.lowerBound([1,2,3,4,5,6,7,8], 9);12console.log(test);
Using AI Code Generation
1var wptools = require('wptools');2var page = wptools.page('Kanye West');3page.get(function(err, resp) {4 if (err) {5 console.log(err);6 } else {7 console.log(resp)8 }9});10var wptools = require('wptools');11var page = wptools.page('Kanye West');12page.get(function(err, resp) {13 if (err) {14 console.log(err);15 } else {16 console.log(resp)17 }18});19var wptools = require('wptools');20var page = wptools.page('Kanye West');21page.get(function(err, resp) {22 if (err) {23 console.log(err);24 } else {25 console.log(resp)26 }27});28var wptools = require('wptools');29var page = wptools.page('Kanye West');30page.get(function(err, resp) {31 if (err) {32 console.log(err);33 } else {34 console.log(resp)35 }36});37var wptools = require('wptools');38var page = wptools.page('Kanye West');39page.get(function(err, resp) {40 if (err) {41 console.log(err);42 } else {43 console.log(resp)44 }45});46var wptools = require('wptools');
Using AI Code Generation
1var wptools = require('wptools');2 { name: 'a', value: 1 },3 { name: 'b', value: 2 },4 { name: 'c', value: 3 },5 { name: 'd', value: 4 },6 { name: 'e', value: 5 },7 { name: 'f', value: 6 },8 { name: 'g', value: 7 },9 { name: 'h', value: 8 },10 { name: 'i', value: 9 },11 { name: 'j', value: 10 }12];13var value = 5;14var result = wptools.lowerBound(arr, value, function(item, value) {15 return item.value - value;16});17console.log(result);
Using AI Code Generation
1var wptools = require('wptools');2var fs = require('fs');3var data = fs.readFileSync('wiki.txt', 'utf8');4var wiki = new wptools.page(data);5wiki.lowerBound('the').then(function(result) {6 console.log(result);7});8{ count: 1,9 [ { title: 'The',10 extract: 'The is the first letter and the first vowel letter in the ISO basic Latin alphabet. It is similar in shape to the Ancient Greek letter alpha, from which it derives. The uppercase version consists of the two slanting sides of a triangle, crossed in the middle by a horizontal bar. The lowercase version can be written in two forms: the double-storey a and single-storey ɑ. The latter is commonly used in handwriting and fonts based on it, especially fonts intended to be read by children, and is also found in italic type. The forms developed from the Phoenician letter aleph, which was used as an "ox head" to start lists of cattle and as a pictogram for oxen or bovine in general (cf. also A). The Greeks adopted the letter, but it fell out of use after the fall of the Western Roman Empire. It was revived in the 15th century and used to represent /a/ in the International Phonetic Alphabet. The letter\'s name in English is pronounced /ðiː/, plural /ðiːz/, with the sound of the initial /th/ in this, that, or them. In other languages, it may be pronounced differently. In most European languages, the letter, and the sound represented by it, is called "the" (e.g. Dutch het, German das, Swedish det, French le, Spanish el, Italian il, Catalan el, Portuguese o, Romanian articolul, Polish the, Hungarian a, Finnish the, Czech the, Slovak the, Slovenian the, Albanian the, Turkish the, Bulgarian the, Macedonian the, Ukrainian the, Serbian the, Croatian the, Romanian the, Welsh the, Irish the, Scots the, and Gaelic the). In some other languages, the letter\'s name is pronounced /a/ (e.g. Icelandic a, Faroese
Using AI Code Generation
1var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];2var result = wpt.lowerBound(numbers, 5);3console.log(result);4result = wpt.lowerBound(numbers, 11);5console.log(result);6result = wpt.lowerBound(numbers, 0);7console.log(result);8result = wpt.lowerBound(numbers, -5);9console.log(result);10result = wpt.lowerBound(numbers, 15);11console.log(result);12result = wpt.lowerBound(numbers, 6);13console.log(result);14result = wpt.lowerBound(numbers, 7);15console.log(result);16result = wpt.lowerBound(numbers, 8);17console.log(result);18result = wpt.lowerBound(numbers, 9);19console.log(result);20result = wpt.lowerBound(numbers, 10);21console.log(result);22result = wpt.lowerBound(numbers, 1);23console.log(result);
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!