How to use extend method in hypothesis

Best Python code snippet using hypothesis

es5-visitors.js

Source:es5-visitors.js Github

copy

Full Screen

...390 else {391 // don't throw here, because there can be a valid js extend that has nothing to do with NS392 return;393 throw {394 message: "You need to call the extend with parameters. Example: '...extend(\"a.b.C\", {...overrides...})') in file: " + config.filePath,395 errCode: 1396 }397 }398 className = arg0.value ? arg0.value : "";399 // Get all methods from the implementation object400 var methodsAndInterfaces = _getOverridenMethodsAndImplementedInterfaces(arg1, config);401 var overriddenMethodNames = methodsAndInterfaces[0];402 var implementedInterfaces = methodsAndInterfaces[1];403 var isCorrectExtendClassName = _testJavaProxyName(className);404 var isCorrectClassName = _testClassName(className);405 if (className && !isCorrectClassName && !isCorrectExtendClassName) {406 throw {407 message: "The 'extend' you are trying to make has an invalid name. Example: '...extend(\"a.b.C\", {...overrides...})'), file: " + config.filePath,408 errCode: 1409 }410 }411 var lineToWrite = "";412 if (isCorrectExtendClassName) {413 if (config.logger) {414 config.logger.info(lineToWrite)415 }416 var classNameFromDecorator = isCorrectExtendClassName ? className : "";417 lineToWrite = _generateLineToWrite(classNameFromDecorator, extendClass.reverse().join("."), overriddenMethodNames, "", config.fullPathName, implementedInterfaces);418 addCustomExtend(classNameFromDecorator, config.fullPathName, lineToWrite);419 return;420 }421 if (config.logger) {422 config.logger.info(lineToWrite)423 }424 var extendInfo = {425 file: config.filePath,426 line: path.node.property.loc.start.line,427 column: path.node.property.loc.start.column + columnOffset,428 className: className429 };430 lineToWrite = _generateLineToWrite(isCorrectExtendClassName ? className : "", extendClass.reverse().join("."), overriddenMethodNames, extendInfo, "", implementedInterfaces);431 normalExtendsArr.push(lineToWrite)432 }433 else {434 // don't throw here, because there can be a valid js extend that has nothing to do with NS435 return;436 throw {437 message: "You need to call the extend '...extend(\"extend_name\", {...overrides...})'), file: " + config.filePath,438 errCode: 1439 }440 }441 }442 /* 443 * HELPER METHODS444 */445 function _getOverriddenMethods(node, config) {446 var overriddenMethodNames = [];447 if (types.isObjectExpression(node)) {448 var objectProperties = node.properties;449 for (var index in objectProperties) {450 overriddenMethodNames.push(objectProperties[index].key.name);451 }...

Full Screen

Full Screen

proto_test.js

Source:proto_test.js Github

copy

Full Screen

1// Protocol Buffers - Google's data interchange format2// Copyright 2008 Google Inc. All rights reserved.3// https://developers.google.com/protocol-buffers/4//5// Redistribution and use in source and binary forms, with or without6// modification, are permitted provided that the following conditions are7// met:8//9// * Redistributions of source code must retain the above copyright10// notice, this list of conditions and the following disclaimer.11// * Redistributions in binary form must reproduce the above12// copyright notice, this list of conditions and the following disclaimer13// in the documentation and/or other materials provided with the14// distribution.15// * Neither the name of Google Inc. nor the names of its16// contributors may be used to endorse or promote products derived from17// this software without specific prior written permission.18//19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.30// Test suite is written using Jasmine -- see http://jasmine.github.io/31goog.require('goog.crypt.base64');32goog.require('goog.testing.asserts');33goog.require('jspb.Message');34// CommonJS-LoadFromFile: ../testbinary_pb proto.jspb.test35goog.require('proto.jspb.test.ExtendsWithMessage');36goog.require('proto.jspb.test.ForeignEnum');37goog.require('proto.jspb.test.ForeignMessage');38goog.require('proto.jspb.test.TestAllTypes');39goog.require('proto.jspb.test.TestExtendable');40goog.require('proto.jspb.test.extendOptionalBool');41goog.require('proto.jspb.test.extendOptionalBytes');42goog.require('proto.jspb.test.extendOptionalDouble');43goog.require('proto.jspb.test.extendOptionalFixed32');44goog.require('proto.jspb.test.extendOptionalFixed64');45goog.require('proto.jspb.test.extendOptionalFloat');46goog.require('proto.jspb.test.extendOptionalForeignEnum');47goog.require('proto.jspb.test.extendOptionalInt32');48goog.require('proto.jspb.test.extendOptionalInt64');49goog.require('proto.jspb.test.extendOptionalSfixed32');50goog.require('proto.jspb.test.extendOptionalSfixed64');51goog.require('proto.jspb.test.extendOptionalSint32');52goog.require('proto.jspb.test.extendOptionalSint64');53goog.require('proto.jspb.test.extendOptionalString');54goog.require('proto.jspb.test.extendOptionalUint32');55goog.require('proto.jspb.test.extendOptionalUint64');56goog.require('proto.jspb.test.extendPackedRepeatedBoolList');57goog.require('proto.jspb.test.extendPackedRepeatedDoubleList');58goog.require('proto.jspb.test.extendPackedRepeatedFixed32List');59goog.require('proto.jspb.test.extendPackedRepeatedFixed64List');60goog.require('proto.jspb.test.extendPackedRepeatedFloatList');61goog.require('proto.jspb.test.extendPackedRepeatedForeignEnumList');62goog.require('proto.jspb.test.extendPackedRepeatedInt32List');63goog.require('proto.jspb.test.extendPackedRepeatedInt64List');64goog.require('proto.jspb.test.extendPackedRepeatedSfixed32List');65goog.require('proto.jspb.test.extendPackedRepeatedSfixed64List');66goog.require('proto.jspb.test.extendPackedRepeatedSint32List');67goog.require('proto.jspb.test.extendPackedRepeatedSint64List');68goog.require('proto.jspb.test.extendPackedRepeatedUint32List');69goog.require('proto.jspb.test.extendPackedRepeatedUint64List');70goog.require('proto.jspb.test.extendRepeatedBoolList');71goog.require('proto.jspb.test.extendRepeatedBytesList');72goog.require('proto.jspb.test.extendRepeatedDoubleList');73goog.require('proto.jspb.test.extendRepeatedFixed32List');74goog.require('proto.jspb.test.extendRepeatedFixed64List');75goog.require('proto.jspb.test.extendRepeatedFloatList');76goog.require('proto.jspb.test.extendRepeatedForeignEnumList');77goog.require('proto.jspb.test.extendRepeatedInt32List');78goog.require('proto.jspb.test.extendRepeatedInt64List');79goog.require('proto.jspb.test.extendRepeatedSfixed32List');80goog.require('proto.jspb.test.extendRepeatedSfixed64List');81goog.require('proto.jspb.test.extendRepeatedSint32List');82goog.require('proto.jspb.test.extendRepeatedSint64List');83goog.require('proto.jspb.test.extendRepeatedStringList');84goog.require('proto.jspb.test.extendRepeatedUint32List');85goog.require('proto.jspb.test.extendRepeatedUint64List');86var suite = {};87var BYTES = new Uint8Array([1, 2, 8, 9]);88var BYTES_B64 = goog.crypt.base64.encodeByteArray(BYTES);89/**90 * Helper: fill all fields on a TestAllTypes message.91 * @param {proto.jspb.test.TestAllTypes} msg92 */93function fillAllFields(msg) {94 msg.setOptionalInt32(-42);95 // can be exactly represented by JS number (64-bit double, i.e., 52-bit96 // mantissa).97 msg.setOptionalInt64(-0x7fffffff00000000);98 msg.setOptionalUint32(0x80000000);99 msg.setOptionalUint64(0xf000000000000000);100 msg.setOptionalSint32(-100);101 msg.setOptionalSint64(-0x8000000000000000);102 msg.setOptionalFixed32(1234);103 msg.setOptionalFixed64(0x1234567800000000);104 msg.setOptionalSfixed32(-1234);105 msg.setOptionalSfixed64(-0x1234567800000000);106 msg.setOptionalFloat(1.5);107 msg.setOptionalDouble(-1.5);108 msg.setOptionalBool(true);109 msg.setOptionalString('hello world');110 msg.setOptionalBytes(BYTES);111 msg.setOptionalGroup(new proto.jspb.test.TestAllTypes.OptionalGroup());112 msg.getOptionalGroup().setA(100);113 var submsg = new proto.jspb.test.ForeignMessage();114 submsg.setC(16);115 msg.setOptionalForeignMessage(submsg);116 msg.setOptionalForeignEnum(proto.jspb.test.ForeignEnum.FOREIGN_FOO);117 msg.setOneofString('oneof');118 msg.setRepeatedInt32List([-42]);119 msg.setRepeatedInt64List([-0x7fffffff00000000]);120 msg.setRepeatedUint32List([0x80000000]);121 msg.setRepeatedUint64List([0xf000000000000000]);122 msg.setRepeatedSint32List([-100]);123 msg.setRepeatedSint64List([-0x8000000000000000]);124 msg.setRepeatedFixed32List([1234]);125 msg.setRepeatedFixed64List([0x1234567800000000]);126 msg.setRepeatedSfixed32List([-1234]);127 msg.setRepeatedSfixed64List([-0x1234567800000000]);128 msg.setRepeatedFloatList([1.5]);129 msg.setRepeatedDoubleList([-1.5]);130 msg.setRepeatedBoolList([true]);131 msg.setRepeatedStringList(['hello world']);132 msg.setRepeatedBytesList([BYTES, BYTES]);133 msg.setRepeatedGroupList([new proto.jspb.test.TestAllTypes.RepeatedGroup()]);134 msg.getRepeatedGroupList()[0].setA(100);135 submsg = new proto.jspb.test.ForeignMessage();136 submsg.setC(1000);137 msg.setRepeatedForeignMessageList([submsg]);138 msg.setRepeatedForeignEnumList([proto.jspb.test.ForeignEnum.FOREIGN_FOO]);139 msg.setPackedRepeatedInt32List([-42]);140 msg.setPackedRepeatedInt64List([-0x7fffffff00000000]);141 msg.setPackedRepeatedUint32List([0x80000000]);142 msg.setPackedRepeatedUint64List([0xf000000000000000]);143 msg.setPackedRepeatedSint32List([-100]);144 msg.setPackedRepeatedSint64List([-0x8000000000000000]);145 msg.setPackedRepeatedFixed32List([1234]);146 msg.setPackedRepeatedFixed64List([0x1234567800000000]);147 msg.setPackedRepeatedSfixed32List([-1234]);148 msg.setPackedRepeatedSfixed64List([-0x1234567800000000]);149 msg.setPackedRepeatedFloatList([1.5]);150 msg.setPackedRepeatedDoubleList([-1.5]);151 msg.setPackedRepeatedBoolList([true]);152}153/**154 * Helper: compare a bytes field to an expected value155 * @param {Uint8Array|string} arr156 * @param {Uint8Array} expected157 * @return {boolean}158 */159function bytesCompare(arr, expected) {160 if (goog.isString(arr)) {161 arr = goog.crypt.base64.decodeStringToUint8Array(arr);162 }163 if (arr.length != expected.length) {164 return false;165 }166 for (var i = 0; i < arr.length; i++) {167 if (arr[i] != expected[i]) {168 return false;169 }170 }171 return true;172}173/**174 * Helper: verify contents of given TestAllTypes message as set by175 * fillAllFields().176 * @param {proto.jspb.test.TestAllTypes} original177 * @param {proto.jspb.test.TestAllTypes} copy178 */179function checkAllFields(original, copy) {180 assertTrue(jspb.Message.equals(original, copy));181 assertEquals(copy.getOptionalInt32(), -42);182 assertEquals(copy.getOptionalInt64(), -0x7fffffff00000000);183 assertEquals(copy.getOptionalUint32(), 0x80000000);184 assertEquals(copy.getOptionalUint64(), 0xf000000000000000);185 assertEquals(copy.getOptionalSint32(), -100);186 assertEquals(copy.getOptionalSint64(), -0x8000000000000000);187 assertEquals(copy.getOptionalFixed32(), 1234);188 assertEquals(copy.getOptionalFixed64(), 0x1234567800000000);189 assertEquals(copy.getOptionalSfixed32(), -1234);190 assertEquals(copy.getOptionalSfixed64(), -0x1234567800000000);191 assertEquals(copy.getOptionalFloat(), 1.5);192 assertEquals(copy.getOptionalDouble(), -1.5);193 assertEquals(copy.getOptionalBool(), true);194 assertEquals(copy.getOptionalString(), 'hello world');195 assertEquals(true, bytesCompare(copy.getOptionalBytes(), BYTES));196 assertEquals(true, bytesCompare(copy.getOptionalBytes_asU8(), BYTES));197 assertEquals(198 copy.getOptionalBytes_asB64(), goog.crypt.base64.encodeByteArray(BYTES));199 assertEquals(copy.getOptionalGroup().getA(), 100);200 assertEquals(copy.getOptionalForeignMessage().getC(), 16);201 assertEquals(copy.getOptionalForeignEnum(),202 proto.jspb.test.ForeignEnum.FOREIGN_FOO);203 assertEquals(copy.getOneofString(), 'oneof');204 assertEquals(copy.getOneofFieldCase(),205 proto.jspb.test.TestAllTypes.OneofFieldCase.ONEOF_STRING);206 assertElementsEquals(copy.getRepeatedInt32List(), [-42]);207 assertElementsEquals(copy.getRepeatedInt64List(), [-0x7fffffff00000000]);208 assertElementsEquals(copy.getRepeatedUint32List(), [0x80000000]);209 assertElementsEquals(copy.getRepeatedUint64List(), [0xf000000000000000]);210 assertElementsEquals(copy.getRepeatedSint32List(), [-100]);211 assertElementsEquals(copy.getRepeatedSint64List(), [-0x8000000000000000]);212 assertElementsEquals(copy.getRepeatedFixed32List(), [1234]);213 assertElementsEquals(copy.getRepeatedFixed64List(), [0x1234567800000000]);214 assertElementsEquals(copy.getRepeatedSfixed32List(), [-1234]);215 assertElementsEquals(copy.getRepeatedSfixed64List(), [-0x1234567800000000]);216 assertElementsEquals(copy.getRepeatedFloatList(), [1.5]);217 assertElementsEquals(copy.getRepeatedDoubleList(), [-1.5]);218 assertElementsEquals(copy.getRepeatedBoolList(), [true]);219 assertElementsEquals(copy.getRepeatedStringList(), ['hello world']);220 assertEquals(copy.getRepeatedBytesList().length, 2);221 assertEquals(true, bytesCompare(copy.getRepeatedBytesList_asU8()[0], BYTES));222 assertEquals(true, bytesCompare(copy.getRepeatedBytesList()[0], BYTES));223 assertEquals(true, bytesCompare(copy.getRepeatedBytesList_asU8()[1], BYTES));224 assertEquals(copy.getRepeatedBytesList_asB64()[0], BYTES_B64);225 assertEquals(copy.getRepeatedBytesList_asB64()[1], BYTES_B64);226 assertEquals(copy.getRepeatedGroupList().length, 1);227 assertEquals(copy.getRepeatedGroupList()[0].getA(), 100);228 assertEquals(copy.getRepeatedForeignMessageList().length, 1);229 assertEquals(copy.getRepeatedForeignMessageList()[0].getC(), 1000);230 assertElementsEquals(copy.getRepeatedForeignEnumList(),231 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);232 assertElementsEquals(copy.getPackedRepeatedInt32List(), [-42]);233 assertElementsEquals(copy.getPackedRepeatedInt64List(),234 [-0x7fffffff00000000]);235 assertElementsEquals(copy.getPackedRepeatedUint32List(), [0x80000000]);236 assertElementsEquals(copy.getPackedRepeatedUint64List(),237 [0xf000000000000000]);238 assertElementsEquals(copy.getPackedRepeatedSint32List(), [-100]);239 assertElementsEquals(copy.getPackedRepeatedSint64List(),240 [-0x8000000000000000]);241 assertElementsEquals(copy.getPackedRepeatedFixed32List(), [1234]);242 assertElementsEquals(copy.getPackedRepeatedFixed64List(),243 [0x1234567800000000]);244 assertElementsEquals(copy.getPackedRepeatedSfixed32List(), [-1234]);245 assertElementsEquals(copy.getPackedRepeatedSfixed64List(),246 [-0x1234567800000000]);247 assertElementsEquals(copy.getPackedRepeatedFloatList(), [1.5]);248 assertElementsEquals(copy.getPackedRepeatedDoubleList(), [-1.5]);249}250/**251 * Helper: verify that all expected extensions are present.252 * @param {!proto.jspb.test.TestExtendable} msg253 */254function checkExtensions(msg) {255 assertEquals(-42,256 msg.getExtension(proto.jspb.test.extendOptionalInt32));257 assertEquals(-0x7fffffff00000000,258 msg.getExtension(proto.jspb.test.extendOptionalInt64));259 assertEquals(0x80000000,260 msg.getExtension(proto.jspb.test.extendOptionalUint32));261 assertEquals(0xf000000000000000,262 msg.getExtension(proto.jspb.test.extendOptionalUint64));263 assertEquals(-100,264 msg.getExtension(proto.jspb.test.extendOptionalSint32));265 assertEquals(-0x8000000000000000,266 msg.getExtension(proto.jspb.test.extendOptionalSint64));267 assertEquals(1234,268 msg.getExtension(proto.jspb.test.extendOptionalFixed32));269 assertEquals(0x1234567800000000,270 msg.getExtension(proto.jspb.test.extendOptionalFixed64));271 assertEquals(-1234,272 msg.getExtension(proto.jspb.test.extendOptionalSfixed32));273 assertEquals(-0x1234567800000000,274 msg.getExtension(proto.jspb.test.extendOptionalSfixed64));275 assertEquals(1.5,276 msg.getExtension(proto.jspb.test.extendOptionalFloat));277 assertEquals(-1.5,278 msg.getExtension(proto.jspb.test.extendOptionalDouble));279 assertEquals(true,280 msg.getExtension(proto.jspb.test.extendOptionalBool));281 assertEquals('hello world',282 msg.getExtension(proto.jspb.test.extendOptionalString));283 assertEquals(284 true, bytesCompare(285 msg.getExtension(proto.jspb.test.extendOptionalBytes), BYTES));286 assertEquals(16,287 msg.getExtension(288 proto.jspb.test.ExtendsWithMessage.optionalExtension).getFoo());289 assertElementsEquals(290 msg.getExtension(proto.jspb.test.extendRepeatedInt32List),291 [-42]);292 assertElementsEquals(293 msg.getExtension(proto.jspb.test.extendRepeatedInt64List),294 [-0x7fffffff00000000]);295 assertElementsEquals(296 msg.getExtension(proto.jspb.test.extendRepeatedUint32List),297 [0x80000000]);298 assertElementsEquals(299 msg.getExtension(proto.jspb.test.extendRepeatedUint64List),300 [0xf000000000000000]);301 assertElementsEquals(302 msg.getExtension(proto.jspb.test.extendRepeatedSint32List),303 [-100]);304 assertElementsEquals(305 msg.getExtension(proto.jspb.test.extendRepeatedSint64List),306 [-0x8000000000000000]);307 assertElementsEquals(308 msg.getExtension(proto.jspb.test.extendRepeatedFixed32List),309 [1234]);310 assertElementsEquals(311 msg.getExtension(proto.jspb.test.extendRepeatedFixed64List),312 [0x1234567800000000]);313 assertElementsEquals(314 msg.getExtension(proto.jspb.test.extendRepeatedSfixed32List),315 [-1234]);316 assertElementsEquals(317 msg.getExtension(proto.jspb.test.extendRepeatedSfixed64List),318 [-0x1234567800000000]);319 assertElementsEquals(320 msg.getExtension(proto.jspb.test.extendRepeatedFloatList),321 [1.5]);322 assertElementsEquals(323 msg.getExtension(proto.jspb.test.extendRepeatedDoubleList),324 [-1.5]);325 assertElementsEquals(326 msg.getExtension(proto.jspb.test.extendRepeatedBoolList),327 [true]);328 assertElementsEquals(329 msg.getExtension(proto.jspb.test.extendRepeatedStringList),330 ['hello world']);331 assertEquals(332 true,333 bytesCompare(334 msg.getExtension(proto.jspb.test.extendRepeatedBytesList)[0], BYTES));335 assertEquals(1000,336 msg.getExtension(337 proto.jspb.test.ExtendsWithMessage.repeatedExtensionList)[0]338 .getFoo());339 assertElementsEquals(340 msg.getExtension(proto.jspb.test.extendRepeatedForeignEnumList),341 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);342 assertElementsEquals(343 msg.getExtension(proto.jspb.test.extendPackedRepeatedInt32List),344 [-42]);345 assertElementsEquals(346 msg.getExtension(proto.jspb.test.extendPackedRepeatedInt64List),347 [-0x7fffffff00000000]);348 assertElementsEquals(349 msg.getExtension(proto.jspb.test.extendPackedRepeatedUint32List),350 [0x80000000]);351 assertElementsEquals(352 msg.getExtension(proto.jspb.test.extendPackedRepeatedUint64List),353 [0xf000000000000000]);354 assertElementsEquals(355 msg.getExtension(proto.jspb.test.extendPackedRepeatedSint32List),356 [-100]);357 assertElementsEquals(358 msg.getExtension(proto.jspb.test.extendPackedRepeatedSint64List),359 [-0x8000000000000000]);360 assertElementsEquals(361 msg.getExtension(proto.jspb.test.extendPackedRepeatedFixed32List),362 [1234]);363 assertElementsEquals(364 msg.getExtension(proto.jspb.test.extendPackedRepeatedFixed64List),365 [0x1234567800000000]);366 assertElementsEquals(367 msg.getExtension(proto.jspb.test.extendPackedRepeatedSfixed32List),368 [-1234]);369 assertElementsEquals(370 msg.getExtension(proto.jspb.test.extendPackedRepeatedSfixed64List),371 [-0x1234567800000000]);372 assertElementsEquals(373 msg.getExtension(proto.jspb.test.extendPackedRepeatedFloatList),374 [1.5]);375 assertElementsEquals(376 msg.getExtension(proto.jspb.test.extendPackedRepeatedDoubleList),377 [-1.5]);378 assertElementsEquals(379 msg.getExtension(proto.jspb.test.extendPackedRepeatedBoolList),380 [true]);381 assertElementsEquals(382 msg.getExtension(proto.jspb.test.extendPackedRepeatedForeignEnumList),383 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);384}385describe('protoBinaryTest', function() {386 /**387 * Tests a basic serialization-deserializaton round-trip with all supported388 * field types (on the TestAllTypes message type).389 */390 it('testRoundTrip', function() {391 var msg = new proto.jspb.test.TestAllTypes();392 fillAllFields(msg);393 var encoded = msg.serializeBinary();394 var decoded = proto.jspb.test.TestAllTypes.deserializeBinary(encoded);395 checkAllFields(msg, decoded);396 });397 /**398 * Test that base64 string and Uint8Array are interchangeable in bytes fields.399 */400 it('testBytesFieldsGettersInterop', function() {401 var msg = new proto.jspb.test.TestAllTypes();402 // Set from a base64 string and check all the getters work.403 msg.setOptionalBytes(BYTES_B64);404 assertTrue(bytesCompare(msg.getOptionalBytes_asU8(), BYTES));405 assertTrue(bytesCompare(msg.getOptionalBytes_asB64(), BYTES));406 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));407 // Test binary serialize round trip doesn't break it.408 msg = proto.jspb.test.TestAllTypes.deserializeBinary(msg.serializeBinary());409 assertTrue(bytesCompare(msg.getOptionalBytes_asU8(), BYTES));410 assertTrue(bytesCompare(msg.getOptionalBytes_asB64(), BYTES));411 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));412 msg = new proto.jspb.test.TestAllTypes();413 // Set from a Uint8Array and check all the getters work.414 msg.setOptionalBytes(BYTES);415 assertTrue(bytesCompare(msg.getOptionalBytes_asU8(), BYTES));416 assertTrue(bytesCompare(msg.getOptionalBytes_asB64(), BYTES));417 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));418 });419 /**420 * Test that bytes setters will receive result of any of the getters.421 */422 it('testBytesFieldsSettersInterop', function() {423 var msg = new proto.jspb.test.TestAllTypes();424 msg.setOptionalBytes(BYTES);425 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));426 msg.setOptionalBytes(msg.getOptionalBytes());427 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));428 msg.setOptionalBytes(msg.getOptionalBytes_asB64());429 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));430 msg.setOptionalBytes(msg.getOptionalBytes_asU8());431 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));432 });433 /**434 * Test that bytes setters will receive result of any of the getters.435 */436 it('testRepeatedBytesGetters', function() {437 var msg = new proto.jspb.test.TestAllTypes();438 function assertGetters() {439 assertTrue(goog.isString(msg.getRepeatedBytesList_asB64()[0]));440 assertTrue(goog.isString(msg.getRepeatedBytesList_asB64()[1]));441 assertTrue(msg.getRepeatedBytesList_asU8()[0] instanceof Uint8Array);442 assertTrue(msg.getRepeatedBytesList_asU8()[1] instanceof Uint8Array);443 assertTrue(bytesCompare(msg.getRepeatedBytesList()[0], BYTES));444 assertTrue(bytesCompare(msg.getRepeatedBytesList()[1], BYTES));445 assertTrue(bytesCompare(msg.getRepeatedBytesList_asB64()[0], BYTES));446 assertTrue(bytesCompare(msg.getRepeatedBytesList_asB64()[1], BYTES));447 assertTrue(bytesCompare(msg.getRepeatedBytesList_asU8()[0], BYTES));448 assertTrue(bytesCompare(msg.getRepeatedBytesList_asU8()[1], BYTES));449 }450 msg.setRepeatedBytesList([BYTES, BYTES]);451 assertGetters();452 msg.setRepeatedBytesList([BYTES_B64, BYTES_B64]);453 assertGetters();454 msg.setRepeatedBytesList([]);455 assertEquals(0, msg.getRepeatedBytesList().length);456 assertEquals(0, msg.getRepeatedBytesList_asB64().length);457 assertEquals(0, msg.getRepeatedBytesList_asU8().length);458 });459 /**460 * Helper: fill all extension values.461 * @param {proto.jspb.test.TestExtendable} msg462 */463 function fillExtensions(msg) {464 msg.setExtension(465 proto.jspb.test.extendOptionalInt32, -42);466 msg.setExtension(467 proto.jspb.test.extendOptionalInt64, -0x7fffffff00000000);468 msg.setExtension(469 proto.jspb.test.extendOptionalUint32, 0x80000000);470 msg.setExtension(471 proto.jspb.test.extendOptionalUint64, 0xf000000000000000);472 msg.setExtension(473 proto.jspb.test.extendOptionalSint32, -100);474 msg.setExtension(475 proto.jspb.test.extendOptionalSint64, -0x8000000000000000);476 msg.setExtension(477 proto.jspb.test.extendOptionalFixed32, 1234);478 msg.setExtension(479 proto.jspb.test.extendOptionalFixed64, 0x1234567800000000);480 msg.setExtension(481 proto.jspb.test.extendOptionalSfixed32, -1234);482 msg.setExtension(483 proto.jspb.test.extendOptionalSfixed64, -0x1234567800000000);484 msg.setExtension(485 proto.jspb.test.extendOptionalFloat, 1.5);486 msg.setExtension(487 proto.jspb.test.extendOptionalDouble, -1.5);488 msg.setExtension(489 proto.jspb.test.extendOptionalBool, true);490 msg.setExtension(491 proto.jspb.test.extendOptionalString, 'hello world');492 msg.setExtension(proto.jspb.test.extendOptionalBytes, BYTES);493 var submsg = new proto.jspb.test.ExtendsWithMessage();494 submsg.setFoo(16);495 msg.setExtension(496 proto.jspb.test.ExtendsWithMessage.optionalExtension, submsg);497 msg.setExtension(498 proto.jspb.test.extendOptionalForeignEnum,499 proto.jspb.test.ForeignEnum.FOREIGN_FOO);500 msg.setExtension(501 proto.jspb.test.extendRepeatedInt32List, [-42]);502 msg.setExtension(503 proto.jspb.test.extendRepeatedInt64List, [-0x7fffffff00000000]);504 msg.setExtension(505 proto.jspb.test.extendRepeatedUint32List, [0x80000000]);506 msg.setExtension(507 proto.jspb.test.extendRepeatedUint64List, [0xf000000000000000]);508 msg.setExtension(509 proto.jspb.test.extendRepeatedSint32List, [-100]);510 msg.setExtension(511 proto.jspb.test.extendRepeatedSint64List, [-0x8000000000000000]);512 msg.setExtension(513 proto.jspb.test.extendRepeatedFixed32List, [1234]);514 msg.setExtension(515 proto.jspb.test.extendRepeatedFixed64List, [0x1234567800000000]);516 msg.setExtension(517 proto.jspb.test.extendRepeatedSfixed32List, [-1234]);518 msg.setExtension(519 proto.jspb.test.extendRepeatedSfixed64List, [-0x1234567800000000]);520 msg.setExtension(521 proto.jspb.test.extendRepeatedFloatList, [1.5]);522 msg.setExtension(523 proto.jspb.test.extendRepeatedDoubleList, [-1.5]);524 msg.setExtension(525 proto.jspb.test.extendRepeatedBoolList, [true]);526 msg.setExtension(527 proto.jspb.test.extendRepeatedStringList, ['hello world']);528 msg.setExtension(proto.jspb.test.extendRepeatedBytesList, [BYTES]);529 submsg = new proto.jspb.test.ExtendsWithMessage();530 submsg.setFoo(1000);531 msg.setExtension(532 proto.jspb.test.ExtendsWithMessage.repeatedExtensionList, [submsg]);533 msg.setExtension(proto.jspb.test.extendRepeatedForeignEnumList,534 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);535 msg.setExtension(536 proto.jspb.test.extendPackedRepeatedInt32List, [-42]);537 msg.setExtension(538 proto.jspb.test.extendPackedRepeatedInt64List, [-0x7fffffff00000000]);539 msg.setExtension(540 proto.jspb.test.extendPackedRepeatedUint32List, [0x80000000]);541 msg.setExtension(542 proto.jspb.test.extendPackedRepeatedUint64List, [0xf000000000000000]);543 msg.setExtension(544 proto.jspb.test.extendPackedRepeatedSint32List, [-100]);545 msg.setExtension(546 proto.jspb.test.extendPackedRepeatedSint64List, [-0x8000000000000000]);547 msg.setExtension(548 proto.jspb.test.extendPackedRepeatedFixed32List, [1234]);549 msg.setExtension(550 proto.jspb.test.extendPackedRepeatedFixed64List, [0x1234567800000000]);551 msg.setExtension(552 proto.jspb.test.extendPackedRepeatedSfixed32List, [-1234]);553 msg.setExtension(554 proto.jspb.test.extendPackedRepeatedSfixed64List,555 [-0x1234567800000000]);556 msg.setExtension(557 proto.jspb.test.extendPackedRepeatedFloatList, [1.5]);558 msg.setExtension(559 proto.jspb.test.extendPackedRepeatedDoubleList, [-1.5]);560 msg.setExtension(561 proto.jspb.test.extendPackedRepeatedBoolList, [true]);562 msg.setExtension(proto.jspb.test.extendPackedRepeatedForeignEnumList,563 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);564 }565 /**566 * Tests extension serialization and deserialization.567 */568 it('testExtensions', function() {569 var msg = new proto.jspb.test.TestExtendable();570 fillExtensions(msg);571 var encoded = msg.serializeBinary();572 var decoded = proto.jspb.test.TestExtendable.deserializeBinary(encoded);573 checkExtensions(decoded);574 });...

Full Screen

Full Screen

extend-visitor.js

Source:extend-visitor.js Github

copy

Full Screen

...21 if (rulesetNode.root) {22 return;23 }24 var i, j, extend, allSelectorsExtendList = [], extendList;25 // get &:extend(.a); rules which apply to all selectors in this ruleset26 var rules = rulesetNode.rules, ruleCnt = rules ? rules.length : 0;27 for(i = 0; i < ruleCnt; i++) {28 if (rulesetNode.rules[i] instanceof tree.Extend) {29 allSelectorsExtendList.push(rules[i]);30 rulesetNode.extendOnEveryPath = true;31 }32 }33 // now find every selector and apply the extends that apply to all extends34 // and the ones which apply to an individual extend35 var paths = rulesetNode.paths;36 for(i = 0; i < paths.length; i++) {37 var selectorPath = paths[i],38 selector = selectorPath[selectorPath.length - 1],39 selExtendList = selector.extendList;40 extendList = selExtendList ? selExtendList.slice(0).concat(allSelectorsExtendList)41 : allSelectorsExtendList;42 if (extendList) {43 extendList = extendList.map(function(allSelectorsExtend) {44 return allSelectorsExtend.clone();45 });46 }47 for(j = 0; j < extendList.length; j++) {48 this.foundExtends = true;49 extend = extendList[j];50 extend.findSelfSelectors(selectorPath);51 extend.ruleset = rulesetNode;52 if (j === 0) { extend.firstExtendOnThisSelectorPath = true; }53 this.allExtendsStack[this.allExtendsStack.length-1].push(extend);54 }55 }56 this.contexts.push(rulesetNode.selectors);57 },58 visitRulesetOut: function (rulesetNode) {59 if (!rulesetNode.root) {60 this.contexts.length = this.contexts.length - 1;61 }62 },63 visitMedia: function (mediaNode, visitArgs) {64 mediaNode.allExtends = [];65 this.allExtendsStack.push(mediaNode.allExtends);66 },67 visitMediaOut: function (mediaNode) {68 this.allExtendsStack.length = this.allExtendsStack.length - 1;69 },70 visitDirective: function (directiveNode, visitArgs) {71 directiveNode.allExtends = [];72 this.allExtendsStack.push(directiveNode.allExtends);73 },74 visitDirectiveOut: function (directiveNode) {75 this.allExtendsStack.length = this.allExtendsStack.length - 1;76 }77 };78 tree.processExtendsVisitor = function() {79 this._visitor = new tree.visitor(this);80 };81 tree.processExtendsVisitor.prototype = {82 run: function(root) {83 var extendFinder = new tree.extendFinderVisitor();84 extendFinder.run(root);85 if (!extendFinder.foundExtends) { return root; }86 root.allExtends = root.allExtends.concat(this.doExtendChaining(root.allExtends, root.allExtends));87 this.allExtendsStack = [root.allExtends];88 return this._visitor.visit(root);89 },90 doExtendChaining: function (extendsList, extendsListTarget, iterationCount) {91 //92 // chaining is different from normal extension.. if we extend an extend then we are not just copying, altering and pasting93 // the selector we would do normally, but we are also adding an extend with the same target selector94 // this means this new extend can then go and alter other extends95 //96 // this method deals with all the chaining work - without it, extend is flat and doesn't work on other extend selectors97 // this is also the most expensive.. and a match on one selector can cause an extension of a selector we had already processed if98 // we look at each selector at a time, as is done in visitRuleset99 var extendIndex, targetExtendIndex, matches, extendsToAdd = [], newSelector, extendVisitor = this, selectorPath, extend, targetExtend, newExtend;100 iterationCount = iterationCount || 0;101 //loop through comparing every extend with every target extend.102 // a target extend is the one on the ruleset we are looking at copy/edit/pasting in place103 // e.g. .a:extend(.b) {} and .b:extend(.c) {} then the first extend extends the second one104 // and the second is the target.105 // the seperation into two lists allows us to process a subset of chains with a bigger set, as is the106 // case when processing media queries107 for(extendIndex = 0; extendIndex < extendsList.length; extendIndex++){108 for(targetExtendIndex = 0; targetExtendIndex < extendsListTarget.length; targetExtendIndex++){109 extend = extendsList[extendIndex];110 targetExtend = extendsListTarget[targetExtendIndex];111 // look for circular references112 if( extend.parent_ids.indexOf( targetExtend.object_id ) >= 0 ){ continue; }113 // find a match in the target extends self selector (the bit before :extend)114 selectorPath = [targetExtend.selfSelectors[0]];115 matches = extendVisitor.findMatch(extend, selectorPath);116 if (matches.length) {117 // we found a match, so for each self selector..118 extend.selfSelectors.forEach(function(selfSelector) {119 // process the extend as usual120 newSelector = extendVisitor.extendSelector(matches, selectorPath, selfSelector);121 // but now we create a new extend from it122 newExtend = new(tree.Extend)(targetExtend.selector, targetExtend.option, 0);123 newExtend.selfSelectors = newSelector;124 // add the extend onto the list of extends for that selector125 newSelector[newSelector.length-1].extendList = [newExtend];126 // record that we need to add it.127 extendsToAdd.push(newExtend);128 newExtend.ruleset = targetExtend.ruleset;129 //remember its parents for circular references130 newExtend.parent_ids = newExtend.parent_ids.concat(targetExtend.parent_ids, extend.parent_ids);131 // only process the selector once.. if we have :extend(.a,.b) then multiple132 // extends will look at the same selector path, so when extending133 // we know that any others will be duplicates in terms of what is added to the css134 if (targetExtend.firstExtendOnThisSelectorPath) {135 newExtend.firstExtendOnThisSelectorPath = true;136 targetExtend.ruleset.paths.push(newSelector);137 }138 });139 }140 }141 }142 if (extendsToAdd.length) {143 // try to detect circular references to stop a stack overflow.144 // may no longer be needed.145 this.extendChainCount++;146 if (iterationCount > 100) {147 var selectorOne = "{unable to calculate}";148 var selectorTwo = "{unable to calculate}";149 try150 {151 selectorOne = extendsToAdd[0].selfSelectors[0].toCSS();152 selectorTwo = extendsToAdd[0].selector.toCSS();153 }154 catch(e) {}155 throw {message: "extend circular reference detected. One of the circular extends is currently:"+selectorOne+":extend(" + selectorTwo+")"};156 }157 // now process the new extends on the existing rules so that we can handle a extending b extending c ectending d extending e...158 return extendsToAdd.concat(extendVisitor.doExtendChaining(extendsToAdd, extendsListTarget, iterationCount+1));159 } else {160 return extendsToAdd;161 }162 },163 visitRule: function (ruleNode, visitArgs) {164 visitArgs.visitDeeper = false;165 },166 visitMixinDefinition: function (mixinDefinitionNode, visitArgs) {167 visitArgs.visitDeeper = false;168 },169 visitSelector: function (selectorNode, visitArgs) {...

Full Screen

Full Screen

Component.js

Source:Component.js Github

copy

Full Screen

2 var utHelper = window.utHelper;3 var testCase = utHelper.prepare(['echarts/model/Component']);4 describe('topologicalTravel', function () {5 testCase('topologicalTravel_base', function (ComponentModel) {6 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});7 ComponentModel.extend({type: 'a1'});8 ComponentModel.extend({type: 'a2'});9 var result = [];10 var allList = ComponentModel.getAllClassMainTypes();11 ComponentModel.topologicalTravel(['m1', 'a1', 'a2'], allList, function (componentType, dependencies) {12 result.push([componentType, dependencies]);13 });14 expect(result).toEqual([['a2', []], ['a1', []], ['m1', ['a1', 'a2']]]);15 });16 testCase('topologicalTravel_a1IsAbsent', function (ComponentModel) {17 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});18 ComponentModel.extend({type: 'a2'});19 var allList = ComponentModel.getAllClassMainTypes();20 var result = [];21 ComponentModel.topologicalTravel(['m1', 'a2'], allList, function (componentType, dependencies) {22 result.push([componentType, dependencies]);23 });24 expect(result).toEqual([['a2', []], ['m1', ['a1', 'a2']]]);25 });26 testCase('topologicalTravel_empty', function (ComponentModel) {27 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});28 ComponentModel.extend({type: 'a1'});29 ComponentModel.extend({type: 'a2'});30 var allList = ComponentModel.getAllClassMainTypes();31 var result = [];32 ComponentModel.topologicalTravel([], allList, function (componentType, dependencies) {33 result.push([componentType, dependencies]);34 });35 expect(result).toEqual([]);36 });37 testCase('topologicalTravel_isolate', function (ComponentModel) {38 ComponentModel.extend({type: 'a2'});39 ComponentModel.extend({type: 'a1'});40 ComponentModel.extend({type: 'm1', dependencies: ['a2']});41 var allList = ComponentModel.getAllClassMainTypes();42 var result = [];43 ComponentModel.topologicalTravel(['a1', 'a2', 'm1'], allList, function (componentType, dependencies) {44 result.push([componentType, dependencies]);45 });46 expect(result).toEqual([['a1', []], ['a2', []], ['m1', ['a2']]]);47 });48 testCase('topologicalTravel_diamond', function (ComponentModel) {49 ComponentModel.extend({type: 'a1', dependencies: []});50 ComponentModel.extend({type: 'a2', dependencies: ['a1']});51 ComponentModel.extend({type: 'a3', dependencies: ['a1']});52 ComponentModel.extend({type: 'm1', dependencies: ['a2', 'a3']});53 var allList = ComponentModel.getAllClassMainTypes();54 var result = [];55 ComponentModel.topologicalTravel(['m1', 'a1', 'a2', 'a3'], allList, function (componentType, dependencies) {56 result.push([componentType, dependencies]);57 });58 expect(result).toEqual([['a1', []], ['a3', ['a1']], ['a2', ['a1']], ['m1', ['a2', 'a3']]]);59 });60 testCase('topologicalTravel_loop', function (ComponentModel) {61 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});62 ComponentModel.extend({type: 'm2', dependencies: ['m1', 'a2']});63 ComponentModel.extend({type: 'a1', dependencies: ['m2', 'a2', 'a3']});64 ComponentModel.extend({type: 'a2'});65 ComponentModel.extend({type: 'a3'});66 var allList = ComponentModel.getAllClassMainTypes();67 expect(function () {68 ComponentModel.topologicalTravel(['m1', 'm2', 'a1'], allList);69 }).toThrowError(/Circl/);70 });71 testCase('topologicalTravel_multipleEchartsInstance', function (ComponentModel) {72 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});73 ComponentModel.extend({type: 'a1'});74 ComponentModel.extend({type: 'a2'});75 var allList = ComponentModel.getAllClassMainTypes();76 var result = [];77 ComponentModel.topologicalTravel(['m1', 'a1', 'a2'], allList, function (componentType, dependencies) {78 result.push([componentType, dependencies]);79 });80 expect(result).toEqual([['a2', []], ['a1', []], ['m1', ['a1', 'a2']]]);81 result = [];82 ComponentModel.extend({type: 'm2', dependencies: ['a1', 'm1']});83 var allList = ComponentModel.getAllClassMainTypes();84 ComponentModel.topologicalTravel(['m2', 'm1', 'a1', 'a2'], allList, function (componentType, dependencies) {85 result.push([componentType, dependencies]);86 });87 expect(result).toEqual([['a2', []], ['a1', []], ['m1', ['a1', 'a2']], ['m2', ['a1', 'm1']]]);88 });89 testCase('topologicalTravel_missingSomeNodeButHasDependencies', function (ComponentModel) {90 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});91 ComponentModel.extend({type: 'a2', dependencies: ['a3']});92 ComponentModel.extend({type: 'a3'});93 ComponentModel.extend({type: 'a4'});94 var result = [];95 var allList = ComponentModel.getAllClassMainTypes();96 ComponentModel.topologicalTravel(['a3', 'm1'], allList, function (componentType, dependencies) {97 result.push([componentType, dependencies]);98 });99 expect(result).toEqual([['a3', []], ['a2', ['a3']], ['m1', ['a1', 'a2']]]);100 var result = [];101 var allList = ComponentModel.getAllClassMainTypes();102 ComponentModel.topologicalTravel(['m1', 'a3'], allList, function (componentType, dependencies) {103 result.push([componentType, dependencies]);104 });105 expect(result).toEqual([['a3', []], ['a2', ['a3']], ['m1', ['a1', 'a2']]]);106 });107 testCase('topologicalTravel_subType', function (ComponentModel) {108 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});109 ComponentModel.extend({type: 'a1.aaa', dependencies: ['a2']});110 ComponentModel.extend({type: 'a1.bbb', dependencies: ['a3', 'a4']});111 ComponentModel.extend({type: 'a2'});112 ComponentModel.extend({type: 'a3'});113 ComponentModel.extend({type: 'a4'});114 var result = [];115 var allList = ComponentModel.getAllClassMainTypes();116 ComponentModel.topologicalTravel(['m1', 'a1', 'a2', 'a4'], allList, function (componentType, dependencies) {117 result.push([componentType, dependencies]);118 });119 expect(result).toEqual([['a4', []], ['a2',[]], ['a1', ['a2','a3','a4']], ['m1', ['a1', 'a2']]]);120 });121 });...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run hypothesis automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful