deno.land / std@0.167.0 / collections / sum_of_test.ts
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
import { assertEquals } from "../testing/asserts.ts";import { sumOf } from "./sum_of.ts";
Deno.test("[collections/sumOf] On object properties", () => { const object = [ { name: "Kyle", age: 34 }, { name: "John", age: 42 }, { name: "Anna", age: 23 }, ];
const actual = sumOf(object, (i) => i.age);
assertEquals(actual, 99);});
Deno.test("[collections/sumOf] Add 2 to each num", () => { const array = [1, 2, 3];
const actual = sumOf(array, (i) => i + 2);
assertEquals(actual, 12);});
Deno.test("[collections/sumOf] Regular sum", () => { const array = [1, 2, 3];
const actual = sumOf(array, (i) => i);
assertEquals(actual, 6);});
Deno.test("[collections/sumOf] Negatives with regular sum", () => { const array = [-1, -2, -3];
const actual = sumOf(array, (i) => i);
assertEquals(actual, -6);});
Deno.test("[collections/sumOf] Mixed negatives and positives with regular sum", () => { const array = [-1, 2, 3, -5];
const actual = sumOf(array, (i) => i);
assertEquals(actual, -1);});
Deno.test("[collections/sumBy] Selector turns nums into negatives", () => { const array = [1, 3, 5, 3];
const actual = sumOf(array, (i) => i - 6);
assertEquals(actual, -12);});
Deno.test("[collections/sumBy] Selector turns nums into zeros", () => { const array = [3, 3, 3, 3];
const actual = sumOf(array, (i) => i - 3);
assertEquals(actual, 0);});
Deno.test("[collections/sumOf] On negative object properties", () => { const object = [ { name: "Kyle", age: -34 }, { name: "John", age: -42 }, { name: "Anna", age: -23 }, ];
const actual = sumOf(object, (i) => i.age);
assertEquals(actual, -99);});
Deno.test("[collections/sumOf] On mixed object properties", () => { const object = [ { name: "Kyle", age: -34 }, { name: "John", age: 42 }, { name: "Anna", age: -23 }, ];
const actual = sumOf(object, (i) => i.age);
assertEquals(actual, -15);});
Deno.test("[collections/sumOf] No mutation", () => { const array = [1, 2, 3, 4];
sumOf(array, (i) => i + 2);
assertEquals(array, [1, 2, 3, 4]);});
Deno.test("[collections/sumOf] Empty array results in 0", () => { const array: number[] = [];
const actual = sumOf(array, (i) => i + 2);
assertEquals(actual, 0);});
Deno.test("[collections/sumOf] NaN and Infinity", () => { const array = [ 1, 2, Number.POSITIVE_INFINITY, 3, 4, Number.NEGATIVE_INFINITY, 5, 6, Number.NaN, 7, 8, ];
const actual = sumOf(array, (i) => i);
assertEquals(actual, NaN);});
Deno.test("[collections/sumOf] Infinity", () => { const array = [1, 2, Infinity, 3, 4, 5, 6, 7, 8];
const actual = sumOf(array, (i) => i);
assertEquals(actual, Infinity);});
Version Info