Warning, /firebird/firebird-ng/src/lib-root-geometry/root-geo-attribute-bits.spec.ts is written in an unsupported language. File is not indexed.
0001 /**
0002 * @date Created on July 10, 2024
0003 * @author Dmitry Romanov
0004 *
0005 * @license This file is part of the Firebird display, which is released under a license agreement
0006 * available in the LICENSE file located in the root directory of this project source tree. This
0007 * file is subject to that license and is intended to be used in accordance with it.
0008 *
0009 * @summary Unit test for GeoAttBits enum and functions for its manipulation.
0010 */
0011
0012 import {GeoAttBits, setGeoBit, testGeoBit, toggleGeoBit} from "./root-geo-attribute-bits";
0013
0014 describe('GeoBits Functions', () => {
0015 let volume: any;
0016
0017 beforeEach(() => {
0018 volume = { fGeoAtt: 0 }; // Initialize volume with fGeoAtt set to 0
0019 });
0020
0021 describe('testGeoBit', () => {
0022 it('should return false if fGeoAtt is undefined', () => {
0023 volume.fGeoAtt = undefined;
0024 expect(testGeoBit(volume, GeoAttBits.kVisThis)).toBeFalse();
0025 });
0026
0027 it('should return false if the bit is not set', () => {
0028 volume.fGeoAtt = 0;
0029 expect(testGeoBit(volume, GeoAttBits.kVisThis)).toBeFalse();
0030 });
0031
0032 it('should return true if the bit is set', () => {
0033 volume.fGeoAtt = GeoAttBits.kVisThis;
0034 expect(testGeoBit(volume, GeoAttBits.kVisThis)).toBeTrue();
0035 });
0036 });
0037
0038 describe('setGeoBit', () => {
0039 it('should set the bit if value is 1', () => {
0040 setGeoBit(volume, GeoAttBits.kVisThis, 1);
0041 expect(testGeoBit(volume, GeoAttBits.kVisThis)).toBeTrue();
0042 });
0043
0044 it('should clear the bit if value is 0', () => {
0045 volume.fGeoAtt = GeoAttBits.kVisThis;
0046 setGeoBit(volume, GeoAttBits.kVisThis, 0);
0047 expect(testGeoBit(volume, GeoAttBits.kVisThis)).toBeFalse();
0048 });
0049
0050 it('should not modify fGeoAtt if it is undefined', () => {
0051 volume.fGeoAtt = undefined;
0052 setGeoBit(volume, GeoAttBits.kVisThis, 1);
0053 expect(volume.fGeoAtt).toBeUndefined();
0054 });
0055 });
0056
0057 describe('toggleGeoBit', () => {
0058 it('should toggle the bit from 0 to 1', () => {
0059 toggleGeoBit(volume, GeoAttBits.kVisThis);
0060 expect(testGeoBit(volume, GeoAttBits.kVisThis)).toBeTrue();
0061 });
0062
0063 it('should toggle the bit from 1 to 0', () => {
0064 volume.fGeoAtt = GeoAttBits.kVisThis;
0065 toggleGeoBit(volume, GeoAttBits.kVisThis);
0066 expect(testGeoBit(volume, GeoAttBits.kVisThis)).toBeFalse();
0067 });
0068
0069 it('should not modify fGeoAtt if it is undefined', () => {
0070 volume.fGeoAtt = undefined;
0071 toggleGeoBit(volume, GeoAttBits.kVisThis);
0072 expect(volume.fGeoAtt).toBeUndefined();
0073 });
0074 });
0075 });