| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- import { initChart } from './c3-helper'
- import { getRegionArea, compareEpochs, pointInRegion } from '../src/stanford'
- describe('c3 stanford tests', function() {
- 'use strict'
- var chart, args
- beforeEach(function(done) {
- chart = initChart(chart, args, done)
- })
- describe('count epochs in region', function() {
- beforeAll(function() {
- args = {
- data: {
- x: 'x',
- y: 'y',
- epochs: 'epochs',
- columns: [
- ['x', 25, 35],
- ['y', 25, 33],
- ['epochs', 30, 35]
- ],
- type: 'stanford'
- }
- }
- })
- it('should return 0 if the region has no epochs', function() {
- var region = [
- { x: 0, y: 0 },
- { x: 20, y: 0 },
- { x: 20, y: 20 },
- { x: 0, y: 20 }
- ]
- var result = chart.internal.countEpochsInRegion(region)
- expect(result.percentage).toBe(0)
- expect(result.value).toBe(0)
- })
- it('should return 100% if the region has all the epochs', function() {
- var region = [
- { x: 0, y: 0 },
- { x: 60, y: 0 },
- { x: 60, y: 60 },
- { x: 0, y: 60 }
- ]
- var result = chart.internal.countEpochsInRegion(region)
- expect(Number(result.percentage)).toBe(100)
- expect(result.value).toBe(65)
- })
- })
- describe('get centroid of region', function() {
- beforeAll(function() {
- args = {
- data: {
- x: 'x',
- y: 'y',
- epochs: 'epochs',
- columns: [
- ['x', 25, 35],
- ['y', 25, 33],
- ['epochs', 30, 35]
- ],
- type: 'stanford'
- }
- }
- })
- var region = [
- // a 20 x 20 square
- { x: 0, y: 0 },
- { x: 20, y: 0 },
- { x: 20, y: 20 },
- { x: 0, y: 20 }
- ]
- it('should return the centroid of a polygon', function() {
- var result = chart.internal.getCentroid(region)
- expect(result.x).toBe(10)
- expect(result.y).toBe(10)
- })
- })
- describe('get region area', function() {
- var square = [
- // a 20 x 20 square
- { x: 0, y: 0 },
- { x: 20, y: 0 },
- { x: 20, y: 20 },
- { x: 0, y: 20 }
- ]
- var squareArea = 400
- var triangle = [
- // A = b * h / 2
- { x: 0, y: 0 },
- { x: 20, y: 20 },
- { x: 0, y: 20 }
- ]
- var triangleArea = 200
- it('should return the correct area for a square', function() {
- expect(Math.abs(getRegionArea(square))).toBe(squareArea)
- })
- it('should return the correct area for a triangle', function() {
- expect(Math.abs(getRegionArea(triangle))).toBe(triangleArea)
- })
- })
- describe('compare epochs', function() {
- var dataBigger = { epochs: 2 }
- var dataLower = { epochs: 1 }
- it('should return -1 if epochs are lower', function() {
- expect(compareEpochs(dataLower, dataBigger)).toBe(-1)
- })
- it('should return 1 if epochs are bigger', function() {
- expect(compareEpochs(dataBigger, dataLower)).toBe(1)
- })
- it('should return 0 if epochs are equal', function() {
- expect(compareEpochs(dataLower, dataLower)).toBe(0)
- })
- })
- describe('check if point is in region', function() {
- var region = [
- { x: 0, y: 0 },
- { x: 20, y: 0 },
- { x: 20, y: 20 },
- { x: 20, y: 20 }
- ]
- var pointInside = { x: 0, value: 0 }
- var pointOutInside = { x: 21, value: 0 }
- it('should return true if point is inside region', function() {
- expect(pointInRegion(pointInside, region)).toBeTruthy()
- })
- it('should return false if point is outside region', function() {
- expect(pointInRegion(pointOutInside, region)).toBeFalsy()
- })
- })
- })
|