53 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* eslint-env node */
 | 
						|
/* eslint-disable @typescript-eslint/no-var-requires */
 | 
						|
"use strict";
 | 
						|
// License: CC0 1.0
 | 
						|
 | 
						|
const {
 | 
						|
  formatInteger, formatSize, formatSpeed, formatTimeDelta
 | 
						|
} = require("../lib/formatters");
 | 
						|
 | 
						|
describe("Formatters", function() {
 | 
						|
  it("formatInteger", function() {
 | 
						|
    expect(formatInteger(1)).to.equal("001");
 | 
						|
    expect(formatInteger(-1)).to.equal("-001");
 | 
						|
    expect(formatInteger(1, 1)).to.equal("1");
 | 
						|
    expect(formatInteger(-1, 1)).to.equal("-1");
 | 
						|
    expect(formatInteger(1, 10)).to.equal("0000000001");
 | 
						|
    expect(formatInteger(10, 1)).to.equal("10");
 | 
						|
    expect(() => formatInteger(1, 0)).to.throw("Invalid digit count");
 | 
						|
    expect(() => formatInteger(1, -1)).to.throw("Invalid digit count");
 | 
						|
  });
 | 
						|
 | 
						|
  it("formatSize", function() {
 | 
						|
    expect(formatSize(0)).to.equal("0B");
 | 
						|
    expect(formatSize(100)).to.equal("100B");
 | 
						|
    expect(formatSize(800)).to.equal("800B");
 | 
						|
    expect(formatSize(900)).to.equal("0.9KB");
 | 
						|
    expect(formatSize((2 << 20) - 1024)).to.equal("2.00MB");
 | 
						|
    expect(formatSize((2 << 20) - 1024 * 10)).to.equal("1.99MB");
 | 
						|
    expect(formatSize(2 << 30)).to.equal("-2.00GB");
 | 
						|
  });
 | 
						|
 | 
						|
  it("formatSpeed", function() {
 | 
						|
    expect(formatSpeed(0)).to.equal("0b/s");
 | 
						|
    expect(formatSpeed(100)).to.equal("100b/s");
 | 
						|
    expect(formatSpeed(800)).to.equal("800b/s");
 | 
						|
    expect(formatSpeed(900)).to.equal("900b/s");
 | 
						|
    expect(formatSpeed((2 << 20) - 1024)).to.equal("2.00MB/s");
 | 
						|
    expect(formatSpeed((2 << 20) - 1024 * 10)).to.equal("1.99MB/s");
 | 
						|
    expect(formatSpeed((2 << 24) - 1024 * 10)).to.equal("31.99MB/s");
 | 
						|
  });
 | 
						|
 | 
						|
  it("formatTimeDelta", function() {
 | 
						|
    expect(formatTimeDelta(0)).to.equal("00:00");
 | 
						|
    expect(formatTimeDelta(59)).to.equal("00:59");
 | 
						|
    expect(formatTimeDelta(60)).to.equal("01:00");
 | 
						|
    expect(formatTimeDelta((60 * 60) - 1)).to.equal("59:59");
 | 
						|
    expect(formatTimeDelta(60 * 60)).to.equal("01:00:00");
 | 
						|
    expect(formatTimeDelta((60 * 60 * 24) - 0.1)).to.equal("23:59:59");
 | 
						|
    expect(formatTimeDelta(60 * 60 * 24)).to.equal("1d::00:00:00");
 | 
						|
    expect(formatTimeDelta(60 * 60 * 24 * 10)).to.equal("∞");
 | 
						|
  });
 | 
						|
});
 |