123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- import { Feature } from 'ol';
- import { ComparisonOperation } from '../types';
- import { checkFeatureMatchesStyleRule } from './checkFeatureMatchesStyleRule';
- describe('check if feature matches style rule', () => {
- it('can compare with numbers', () => {
- const feature = new Feature({
- number: 3,
- });
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.EQ,
- property: 'number',
- value: 3,
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.EQ,
- property: 'number',
- value: '3',
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.LT,
- property: 'number',
- value: 2,
- },
- feature
- )
- ).toEqual(false);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.LTE,
- property: 'number',
- value: 3,
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.GT,
- property: 'number',
- value: 3,
- },
- feature
- )
- ).toEqual(false);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.GTE,
- property: 'number',
- value: 3,
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.NEQ,
- property: 'number',
- value: 3,
- },
- feature
- )
- ).toEqual(false);
- });
- it('can compare with strings', () => {
- const feature = new Feature({
- string: 'b',
- });
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.EQ,
- property: 'string',
- value: 'B',
- },
- feature
- )
- ).toEqual(false);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.LT,
- property: 'string',
- value: 'c',
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.LTE,
- property: 'string',
- value: 'bc',
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.GT,
- property: 'string',
- value: 'ab',
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.GTE,
- property: 'string',
- value: 'abc',
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.NEQ,
- property: 'string',
- value: 'b',
- },
- feature
- )
- ).toEqual(false);
- });
- it('can compare with booleans', () => {
- const feature = new Feature({
- name: 'test polygon',
- });
- feature.setProperties({ boolean: false });
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.EQ,
- property: 'boolean',
- value: false,
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.LT,
- property: 'boolean',
- value: true,
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.LTE,
- property: 'boolean',
- value: true,
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.GT,
- property: 'boolean',
- value: false,
- },
- feature
- )
- ).toEqual(false);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.GTE,
- property: 'boolean',
- value: false,
- },
- feature
- )
- ).toEqual(true);
- expect(
- checkFeatureMatchesStyleRule(
- {
- operation: ComparisonOperation.NEQ,
- property: 'boolean',
- value: false,
- },
- feature
- )
- ).toEqual(false);
- });
- });
|