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);
Check out the latest blogs from LambdaTest on this topic:
People love to watch, read and interact with quality content — especially video content. Whether it is sports, news, TV shows, or videos captured on smartphones, people crave digital content. The emergence of OTT platforms has already shaped the way people consume content. Viewers can now enjoy their favorite shows whenever they want rather than at pre-set times. Thus, the OTT platform’s concept of viewing anything, anytime, anywhere has hit the right chord.
Software testing is fueling the IT sector forward by scaling up the test process and continuous product delivery. Currently, this profession is in huge demand, as it needs certified testers with expertise in automation testing. When it comes to outsourcing software testing jobs, whether it’s an IT company or an individual customer, they all look for accredited professionals. That’s why having an software testing certification has become the need of the hour for the folks interested in the test automation field. A well-known certificate issued by an authorized institute kind vouches that the certificate holder is skilled in a specific technology.
This article is a part of our Content Hub. For more in-depth resources, check out our content hub on Mobile App Testing Tutorial.
Before we discuss the Joomla testing, let us understand the fundamentals of Joomla and how this content management system allows you to create and maintain web-based applications or websites without having to write and implement complex coding requirements.
Unit and functional testing are the prime ways of verifying the JavaScript code quality. However, a host of tools are available that can also check code before or during its execution in order to test its quality and adherence to coding standards. With each tool having its unique features and advantages contributing to its testing capabilities, you can use the tool that best suits your need for performing JavaScript testing.
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!!