mirror of
https://github.com/tc39/test262.git
synced 2025-04-08 19:35:28 +02:00
Partial cleanup of TestCasePackager.py. Major change is the 'json'
module is now utilized.
This commit is contained in:
parent
61343f1b93
commit
31e2bcacf6
@ -1,3 +1,4 @@
|
||||
#--Imports---------------------------------------------------------------------
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
@ -6,57 +7,81 @@ import base64
|
||||
import datetime
|
||||
import shutil
|
||||
import re
|
||||
import json
|
||||
|
||||
max_tests_per_json = 1000
|
||||
#--Globals---------------------------------------------------------------------
|
||||
MAX_CASES_PER_JSON = 1000
|
||||
|
||||
parser = argparse.ArgumentParser(description='Tool used to generate the test262 website')
|
||||
parser.add_argument('version', action='store',
|
||||
__parser = argparse.ArgumentParser(description='Tool used to generate the test262 website')
|
||||
__parser.add_argument('version', action='store',
|
||||
help='Version of the test suite.')
|
||||
args = parser.parse_args()
|
||||
ARGS = __parser.parse_args()
|
||||
|
||||
cur_path = os.path.dirname(os.path.realpath(__file__))
|
||||
test262_root = os.path.join(cur_path, "..", "..")
|
||||
test262_root = os.path.abspath(test262_root)
|
||||
root_dir = os.path.join(test262_root, "test", "suite")
|
||||
web_root_path = os.path.join(test262_root, "website", "resources", "scripts", "testcases")
|
||||
web_root_path_on_server = "resources/scripts/testcases/"
|
||||
exclude_list_filename = os.path.join(test262_root, "test", "config", "excludelist.xml")
|
||||
test_harness_dir = os.path.join(test262_root, "test", "harness")
|
||||
test_harness_website_dir = os.path.join(test262_root, "website", "resources", "scripts", "global")
|
||||
test_harness_files = [x for x in os.listdir(test_harness_dir) if x.endswith(".js")]
|
||||
#Path to the root of the Hg repository (relative to this file's location)
|
||||
TEST262_ROOT = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..", "..")
|
||||
TEST262_ROOT = os.path.abspath(TEST262_ROOT)
|
||||
|
||||
#--Sanity checks--------------------------------------------------------------#
|
||||
if not os.path.exists(root_dir):
|
||||
print "Cannot generate (JSON) test262 tests when the path containing said tests, root_dir, does not exist!"
|
||||
#Directory full of test cases we want to port to the website's test harness runner
|
||||
TEST262_CASES_DIR = os.path.join(TEST262_ROOT, "test", "suite")
|
||||
|
||||
#Directory containing test harness files to be ported over to the website. Note that
|
||||
#only *.js files will be migrated from this dir.
|
||||
TEST262_HARNESS_DIR = os.path.join(TEST262_ROOT, "test", "harness")
|
||||
|
||||
#Directory full of website test cases (ported over from TEST262_CASES_DIR)
|
||||
TEST262_WEB_CASES_DIR = os.path.join(TEST262_ROOT, "website", "resources", "scripts", "testcases")
|
||||
|
||||
#Directory containing the website's test harness (ported over from TEST262_HARNESS_DIR)
|
||||
TEST262_WEB_HARNESS_DIR = os.path.join(TEST262_ROOT, "website", "resources", "scripts", "global")
|
||||
|
||||
#Path to the ported test case files on the actual website as opposed to the Hg layout
|
||||
WEBSITE_CASES_PATH = "resources/scripts/testcases/"
|
||||
|
||||
#The name of a file which contains a list of tests which should be disabled in test262.
|
||||
#These tests are either invalid as-per ES5 or have issues with the test262 web harness.
|
||||
EXCLUDED_FILENAME = os.path.join(TEST262_ROOT, "test", "config", "excludelist.xml")
|
||||
|
||||
if not os.path.exists(EXCLUDED_FILENAME):
|
||||
print "Cannot generate (JSON) test262 tests without a file, %s, showing which tests have been disabled!" % EXCLUDED_FILENAME
|
||||
sys.exit(1)
|
||||
|
||||
if not os.path.exists(web_root_path):
|
||||
print "Cannot generate (JSON) test262 tests to 'web_root_path' when it does not exist!"
|
||||
sys.exit(1)
|
||||
|
||||
if not os.path.exists(exclude_list_filename):
|
||||
print "Cannot generate (JSON) test262 tests without a file, exclude_list_filename, showing which tests have been disabled!"
|
||||
sys.exit(1)
|
||||
|
||||
if not hasattr(args, "version"):
|
||||
print "A test262 suite version must be specified to run this script!"
|
||||
sys.exit(1)
|
||||
|
||||
if len(test_harness_files) < 3:
|
||||
print "There are less than five test harness files under test_harness_dir. Something must be wrong!"
|
||||
sys.exit(1)
|
||||
|
||||
#--Globals--------------------------------------------------------------------#
|
||||
EXCLUDE_LIST = xml.dom.minidom.parse(EXCLUDED_FILENAME)
|
||||
EXCLUDE_LIST = EXCLUDE_LIST.getElementsByTagName("test")
|
||||
EXCLUDE_LIST = [x.getAttribute("id") for x in EXCLUDE_LIST]
|
||||
|
||||
#Directories under "test\suite\" containing ES5 test chapter directories
|
||||
#with *.js tests underneath them
|
||||
contribution_dirs = ["sputnik_converted", "ietestcenter"]
|
||||
TEST_CONTRIB_DIRS = ["sputnik_converted", "ietestcenter"]
|
||||
|
||||
#a list of all ES5 test chapter directories
|
||||
chapters = []
|
||||
TEST_SUITE_SECTIONS = []
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#--Sanity checks--------------------------------------------------------------#
|
||||
if not os.path.exists(TEST262_CASES_DIR):
|
||||
print "Cannot generate (JSON) test262 tests when the path containing said tests, %s, does not exist!" % TEST262_CASES_DIR
|
||||
sys.exit(1)
|
||||
|
||||
if not os.path.exists(TEST262_HARNESS_DIR):
|
||||
print "Cannot copy the test harness from a path, %s, that does not exist!" % TEST262_HARNESS_DIR
|
||||
sys.exit(1)
|
||||
|
||||
if not os.path.exists(TEST262_WEB_CASES_DIR):
|
||||
print "Cannot generate (JSON) test262 test cases to %s when it does not exist!" % TEST262_WEB_CASES_DIR
|
||||
sys.exit(1)
|
||||
|
||||
if not os.path.exists(TEST262_WEB_HARNESS_DIR):
|
||||
print "Cannot copy test262 test harness to %s when it does not exist!" % TEST262_WEB_HARNESS_DIR
|
||||
sys.exit(1)
|
||||
|
||||
if not hasattr(ARGS, "version"):
|
||||
print "A test262 suite version must be specified from the command-line to run this script!"
|
||||
sys.exit(1)
|
||||
|
||||
#--Helpers--------------------------------------------------------------------#
|
||||
def getJSCount(dirName):
|
||||
'''
|
||||
Returns the total number of *.js files (recursively) under a given
|
||||
directory, dirName.
|
||||
'''
|
||||
retVal = 0
|
||||
if os.path.isfile(dirName) and dirName.endswith(".js"):
|
||||
retVal = 1
|
||||
@ -70,10 +95,11 @@ def getJSCount(dirName):
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
def dirWalker(dirName):
|
||||
global TEST_SUITE_SECTIONS
|
||||
#First check to see if it has test files directly inside it
|
||||
temp = [os.path.join(dirName, x) for x in os.listdir(dirName) if not os.path.isdir(os.path.join(dirName, x))]
|
||||
if len(temp)!=0:
|
||||
chapters.append(dirName)
|
||||
TEST_SUITE_SECTIONS.append(dirName)
|
||||
return
|
||||
|
||||
#Next check to see if all *.js files under this directory exceed our max
|
||||
@ -82,8 +108,8 @@ def dirWalker(dirName):
|
||||
if temp==0:
|
||||
print "ERROR: expected there to be JavaScript tests under dirName!"
|
||||
sys.exit(1)
|
||||
elif temp < max_tests_per_json:
|
||||
chapters.append(dirName)
|
||||
elif temp < MAX_CASES_PER_JSON:
|
||||
TEST_SUITE_SECTIONS.append(dirName)
|
||||
return
|
||||
else:
|
||||
#Max has been exceeded. We need to look at each subdir individually
|
||||
@ -92,19 +118,17 @@ def dirWalker(dirName):
|
||||
dirWalker(os.path.join(dirName, tempSubdir))
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
for tempDirName in contribution_dirs:
|
||||
if not os.path.exists(os.path.join(root_dir, tempDirName)):
|
||||
print "The expected ES5 test directory, root_dir\$tempDirName, did not exist!"
|
||||
for tempDirName in TEST_CONTRIB_DIRS:
|
||||
if not os.path.exists(os.path.join(TEST262_CASES_DIR, tempDirName)):
|
||||
print "The expected ES5 test directory, TEST262_CASES_DIR\$tempDirName, did not exist!"
|
||||
sys.exit(1)
|
||||
dirWalker(os.path.join(root_dir, tempDirName))
|
||||
dirWalker(os.path.join(TEST262_CASES_DIR, tempDirName))
|
||||
|
||||
num_tests=0
|
||||
NUM_TESTS = 0
|
||||
#total number of tests accross the entire set of tests.
|
||||
total_num_tests=0
|
||||
TOTAL_TEST_COUNT = 0
|
||||
|
||||
|
||||
excludeList = xml.dom.minidom.parse(exclude_list_filename)
|
||||
excludeList = excludeList.getElementsByTagName("test")
|
||||
excludeList = [x.getAttribute("id") for x in excludeList]
|
||||
|
||||
#--HELPERS---------------------------------------------------------------------
|
||||
multilineComment = False
|
||||
@ -132,59 +156,7 @@ def isTestStarted(line):
|
||||
return True
|
||||
|
||||
#--MAIN------------------------------------------------------------------------
|
||||
#add quotes around a string to package it in JSON
|
||||
def Encode(tstr):
|
||||
return '"' + str(tstr) + '"'
|
||||
|
||||
#the following functions open and close json dictionary and array
|
||||
def OpenDict():
|
||||
return "{"
|
||||
|
||||
def CloseDict(d):
|
||||
return d + "}"
|
||||
|
||||
def OpenArray():
|
||||
return "["
|
||||
|
||||
def CloseArray(a):
|
||||
return a + "]"
|
||||
|
||||
#add a node to an open dictionary. If it is first, do not add a comma.
|
||||
#Some json parsers are sensitive and won't parse if the last element has a comma at the end
|
||||
def AddDictNode(d, n, IsFirst):
|
||||
if IsFirst:
|
||||
o = d+n
|
||||
else:
|
||||
o = d + "," + n
|
||||
return o
|
||||
|
||||
#add a node to an open array
|
||||
def AddArrayElement(a, n, IsFirst):
|
||||
if IsFirst:
|
||||
o = a + n
|
||||
else:
|
||||
o = a + "," + n
|
||||
return o
|
||||
|
||||
#this creates a dictionary node for a given key and value which is non-string
|
||||
def CreateNode(k, v):
|
||||
t = Encode(k)
|
||||
return t + ":" + str(v)
|
||||
|
||||
# a similar node except where the value is a string
|
||||
def CreateStringNode(a, b):
|
||||
t1 = Encode(a)
|
||||
t2 = Encode(b)
|
||||
return t1 + ":" + t2
|
||||
|
||||
#TODO...
|
||||
def IsNullOrEmpty(str):
|
||||
if (str):
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
testSuite = OpenArray()
|
||||
testSuite = []
|
||||
count = 0
|
||||
|
||||
def getAllJSFiles(dirName):
|
||||
@ -193,16 +165,17 @@ def getAllJSFiles(dirName):
|
||||
retVal += [os.path.join(fullPath,b) for b in files if b.endswith(".js")]
|
||||
return retVal
|
||||
|
||||
for chapter in chapters:
|
||||
for chapter in TEST_SUITE_SECTIONS:
|
||||
chapterName = chapter.rsplit(os.path.sep, 1)[1]
|
||||
print "Generating test cases for ES5 chapter:", chapterName
|
||||
#create dictionaries for all our tests and a section
|
||||
testsList = OpenDict()
|
||||
sect = OpenDict()
|
||||
testsList = {}
|
||||
sect = {}
|
||||
|
||||
sectionName ="Chapter - " + chapterName
|
||||
sectionNameNode = CreateStringNode("name", sectionName)
|
||||
sect["name"] = sectionName
|
||||
#create an array for tests in a chapter
|
||||
tests = OpenArray()
|
||||
tests = []
|
||||
sourceFiles = getAllJSFiles(chapter)
|
||||
if len(sourceFiles)!=0:
|
||||
excluded=0
|
||||
@ -210,12 +183,11 @@ for chapter in chapters:
|
||||
for test in sourceFiles:
|
||||
testName=test.rsplit(".", 1)[0] #12.4.6
|
||||
testName=testName.rsplit(os.path.sep, 1)[1]
|
||||
if excludeList.count(testName)==0:
|
||||
if EXCLUDE_LIST.count(testName)==0:
|
||||
# dictionary for each test
|
||||
testDict = OpenDict()
|
||||
idNode = CreateStringNode("id", testName)
|
||||
#id node is our first node in the test dictionary
|
||||
testDict = AddDictNode(testDict, idNode, True)
|
||||
testDict = {}
|
||||
testDict["id"] = testName
|
||||
|
||||
tempFile = open(test, "r")
|
||||
scriptCode = tempFile.readlines()
|
||||
tempFile.close()
|
||||
@ -237,87 +209,58 @@ for chapter in chapters:
|
||||
scriptCodeContent = "".join(scriptCode)
|
||||
scriptCodeContent = base64.b64encode(scriptCodeContent)
|
||||
|
||||
codeNode = CreateStringNode("code", scriptCodeContent)
|
||||
#add the test encoded code node to our test dictionary
|
||||
testDict = AddDictNode(testDict, codeNode, False)
|
||||
testDict["code"] = scriptCodeContent
|
||||
#now close the dictionary for the test
|
||||
testDict = CloseDict(testDict)
|
||||
|
||||
#this adds the test to our tests array. Should we add a comma or not
|
||||
if testCount==0:
|
||||
tests = AddArrayElement(tests, testDict, True)
|
||||
else:
|
||||
tests = AddArrayElement(tests, testDict, False)
|
||||
#this adds the test to our tests array
|
||||
tests.append(testDict)
|
||||
testCount += 1
|
||||
else:
|
||||
excluded = excluded + 1
|
||||
|
||||
#we have completed our tests. Close the tests array
|
||||
tests = CloseArray(tests)
|
||||
testsNode = CreateNode ("tests", tests)
|
||||
#we have completed our tests
|
||||
NUM_TESTS = str(len(sourceFiles)-excluded)
|
||||
|
||||
num_tests = str(len(sourceFiles)-excluded)
|
||||
#number of tests in our chapter. Create a node
|
||||
num_testsNode = CreateStringNode("numTests", num_tests)
|
||||
|
||||
# add sectiopn node, number of tests and the tests themselves.
|
||||
sect = AddDictNode(sect, sectionNameNode, True)
|
||||
sect = AddDictNode(sect, num_testsNode, False)
|
||||
sect = AddDictNode(sect, testsNode, False)
|
||||
#close the section dictionary node
|
||||
sect = CloseDict(sect)
|
||||
# add section node, number of tests and the tests themselves.
|
||||
sect["numTests"] = NUM_TESTS
|
||||
sect["tests"] = tests
|
||||
|
||||
#create a node for the tests and add it to our testsLists
|
||||
testCollectionNode = CreateNode("testsCollection", sect)
|
||||
testsList = AddDictNode(testsList, testCollectionNode, True)
|
||||
testsList = CloseDict(testsList)
|
||||
|
||||
testGroupPathname = web_root_path + os.path.sep + chapterName + ".json"
|
||||
testsList["testsCollection"] = sect
|
||||
|
||||
testGroupPathname = TEST262_WEB_CASES_DIR + os.path.sep + chapterName + ".json"
|
||||
|
||||
#if you want to use jsmin to minimize the .json file, use the 2nd line. Otherwise 1st
|
||||
with open(testGroupPathname, "w") as f:
|
||||
f.write(testsList)
|
||||
json.dump(testsList, f, separators=(',',':'), sort_keys=True)
|
||||
|
||||
#add the name of the chapter test to our complete list
|
||||
filename = web_root_path_on_server + chapterName + ".json"
|
||||
filenameEnc = Encode(filename)
|
||||
if count==0:
|
||||
testSuite = AddArrayElement(testSuite, filenameEnc, True)
|
||||
else:
|
||||
testSuite = AddArrayElement(testSuite, filenameEnc, False)
|
||||
filename = WEBSITE_CASES_PATH + chapterName + ".json"
|
||||
testSuite.append(filename)
|
||||
count += 1
|
||||
total_num_tests += len(sourceFiles) - excluded
|
||||
TOTAL_TEST_COUNT += len(sourceFiles) - excluded
|
||||
|
||||
#we now have the list of files for each chapter. Close that array
|
||||
testSuite = CloseArray(testSuite)
|
||||
#we now have the list of files for each chapter
|
||||
#create a root node for our suite
|
||||
testSuiteRoot = OpenDict()
|
||||
#create a node for total number of tests across all chapters
|
||||
total_num_testsNode = CreateNode("numTests", total_num_tests)
|
||||
testSuiteRoot = {}
|
||||
#create suiteversion node
|
||||
args.versionEnc = Encode(args.version)
|
||||
args.versionNode = CreateNode("version", args.versionEnc)
|
||||
#create a date node
|
||||
dateStr = str(datetime.datetime.now().date())
|
||||
dateEnc = Encode(dateStr)
|
||||
dateNode = CreateNode("date", dateEnc)
|
||||
#add the nodes to our suites dictionary
|
||||
testSuiteRoot = AddDictNode(testSuiteRoot,total_num_testsNode, True)
|
||||
testSuiteRoot = AddDictNode(testSuiteRoot, args.versionNode, False)
|
||||
testSuiteRoot = AddDictNode(testSuiteRoot, dateNode, False)
|
||||
testSuiteNode = CreateNode("testSuite", testSuite)
|
||||
testSuiteRoot = AddDictNode(testSuiteRoot, testSuiteNode, False)
|
||||
#close the testsuite and write it to the root file
|
||||
testSuiteRoot = CloseDict(testSuiteRoot)
|
||||
testcaseslistPathName = web_root_path + os.path.sep + "testcaseslist.json"
|
||||
testSuiteRoot["numTests"] = TOTAL_TEST_COUNT
|
||||
testSuiteRoot["version"] = ARGS.version
|
||||
testSuiteRoot["date"] = dateStr
|
||||
testSuiteRoot["testSuite"] = testSuite
|
||||
testcaseslistPathName = TEST262_WEB_CASES_DIR + os.path.sep + "testcaseslist.json"
|
||||
|
||||
with open(testcaseslistPathName, "w") as f:
|
||||
f.write(testSuiteRoot)
|
||||
json.dump(testSuiteRoot, f, separators=(',',':'), sort_keys=True)
|
||||
|
||||
#Deploy test harness to website as well
|
||||
print ""
|
||||
print "Deploying test harness files to 'test_harness_website_dir'..."
|
||||
for filename in test_harness_files:
|
||||
shutil.copy(os.path.join(test_harness_dir, filename),
|
||||
os.path.join(test_harness_website_dir, filename))
|
||||
print "Deploying test harness files to 'TEST262_WEB_HARNESS_DIR'..."
|
||||
for filename in [x for x in os.listdir(TEST262_HARNESS_DIR) if x.endswith(".js")]:
|
||||
shutil.copy(os.path.join(TEST262_HARNESS_DIR, filename),
|
||||
os.path.join(TEST262_WEB_HARNESS_DIR, filename))
|
||||
print "Done."
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
{"testsCollection":{"name":"Chapter - 15.1","numTests":"5","tests":[{"id":"15.1.1.1-0","code":"dmFyIGdsb2JhbCA9IHRoaXM7CgoKRVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS4xLjEuMS0wIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4xLzE1LjEuMS4xLzE1LjEuMS4xLTAuanMiLAoKZGVzY3JpcHRpb246ICJHbG9iYWwuTmFOIGlzIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlcyAoZmFsc2UpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdOYU4nKTsKICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYKICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJgogICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0sCgpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7CiB9Cn0pOwo="},{"id":"15.1.1.2-0","code":"dmFyIGdsb2JhbCA9IHRoaXM7CgoKRVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS4xLjEuMi0wIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4xLzE1LjEuMS4yLzE1LjEuMS4yLTAuanMiLAoKZGVzY3JpcHRpb246ICJHbG9iYWwuSW5maW5pdHkgaXMgYSBkYXRhIHByb3BlcnR5IHdpdGggZGVmYXVsdCBhdHRyaWJ1dGUgdmFsdWVzIChmYWxzZSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0luZmluaXR5Jyk7CiAgaWYgKGRlc2Mud3JpdGFibGUgPT09IGZhbHNlICYmCiAgICAgIGRlc2MuZW51bWVyYWJsZSA9PT0gZmFsc2UgJiYKICAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlKSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiB9LAoKcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOwogfQp9KTsK"},{"id":"15.1.1.3-0","code":"dmFyIGdsb2JhbCA9IHRoaXM7CgoKRVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS4xLjEuMy0wIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4xLzE1LjEuMS4zLzE1LjEuMS4zLTAuanMiLAoKZGVzY3JpcHRpb246ICJHbG9iYWwudW5kZWZpbmVkIGlzIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlcyAoZmFsc2UpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICd1bmRlZmluZWQnKTsKICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYKICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJgogICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0sCgpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7CiB9Cn0pOwo="},{"id":"15.1.2.2-2-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4xLjIuMi0yLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4yLzE1LjEuMi4yLzE1LjEuMi4yLTItMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJwYXJlc2VJbnQgLSAnUycgaXMgdGhlIGVtcHR5IHN0cmluZyB3aGVuIGlucHV0U3RyaW5nIGRvZXMgbm90IGNvbnRhaW4gYW55IHN1Y2ggY2hhcmFjdGVycyIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgcmV0dXJuIGlzTmFOKHBhcnNlSW50KCIiKSkgJiYgcGFyc2VJbnQoIiIpICE9PSBwYXJzZUludCgiIik7CiAgICB9LAoKICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9KTsK"},{"id":"15.1.2.3-2-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4xLjIuMy0yLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4yLzE1LjEuMi4zLzE1LjEuMi4zLTItMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJwYXJlc2VGbG9hdCAtICd0cmltbWVkU3RyaW5nJyBpcyB0aGUgZW1wdHkgc3RyaW5nIHdoZW4gaW5wdXRTdHJpbmcgZG9lcyBub3QgY29udGFpbiBhbnkgc3VjaCBjaGFyYWN0ZXJzIiwKCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgICAgICByZXR1cm4gaXNOYU4ocGFyc2VGbG9hdCgiIikpICYmIHBhcnNlRmxvYXQoIiIpICE9PSBwYXJzZUZsb2F0KCIiKTsKICAgIH0sCgogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9Cn0pOwo="}]}}
|
||||
{"testsCollection":{"name":"Chapter - 15.1","numTests":"5","tests":[{"code":"dmFyIGdsb2JhbCA9IHRoaXM7CgoKRVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS4xLjEuMS0wIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4xLzE1LjEuMS4xLzE1LjEuMS4xLTAuanMiLAoKZGVzY3JpcHRpb246ICJHbG9iYWwuTmFOIGlzIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlcyAoZmFsc2UpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdOYU4nKTsKICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYKICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJgogICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0sCgpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7CiB9Cn0pOwo=","id":"15.1.1.1-0"},{"code":"dmFyIGdsb2JhbCA9IHRoaXM7CgoKRVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS4xLjEuMi0wIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4xLzE1LjEuMS4yLzE1LjEuMS4yLTAuanMiLAoKZGVzY3JpcHRpb246ICJHbG9iYWwuSW5maW5pdHkgaXMgYSBkYXRhIHByb3BlcnR5IHdpdGggZGVmYXVsdCBhdHRyaWJ1dGUgdmFsdWVzIChmYWxzZSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ0luZmluaXR5Jyk7CiAgaWYgKGRlc2Mud3JpdGFibGUgPT09IGZhbHNlICYmCiAgICAgIGRlc2MuZW51bWVyYWJsZSA9PT0gZmFsc2UgJiYKICAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlKSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiB9LAoKcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOwogfQp9KTsK","id":"15.1.1.2-0"},{"code":"dmFyIGdsb2JhbCA9IHRoaXM7CgoKRVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS4xLjEuMy0wIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4xLzE1LjEuMS4zLzE1LjEuMS4zLTAuanMiLAoKZGVzY3JpcHRpb246ICJHbG9iYWwudW5kZWZpbmVkIGlzIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlcyAoZmFsc2UpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICd1bmRlZmluZWQnKTsKICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYKICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJgogICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0sCgpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7CiB9Cn0pOwo=","id":"15.1.1.3-0"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4xLjIuMi0yLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4yLzE1LjEuMi4yLzE1LjEuMi4yLTItMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJwYXJlc2VJbnQgLSAnUycgaXMgdGhlIGVtcHR5IHN0cmluZyB3aGVuIGlucHV0U3RyaW5nIGRvZXMgbm90IGNvbnRhaW4gYW55IHN1Y2ggY2hhcmFjdGVycyIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgcmV0dXJuIGlzTmFOKHBhcnNlSW50KCIiKSkgJiYgcGFyc2VJbnQoIiIpICE9PSBwYXJzZUludCgiIik7CiAgICB9LAoKICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9KTsK","id":"15.1.2.2-2-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4xLjIuMy0yLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEvMTUuMS4yLzE1LjEuMi4zLzE1LjEuMi4zLTItMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJwYXJlc2VGbG9hdCAtICd0cmltbWVkU3RyaW5nJyBpcyB0aGUgZW1wdHkgc3RyaW5nIHdoZW4gaW5wdXRTdHJpbmcgZG9lcyBub3QgY29udGFpbiBhbnkgc3VjaCBjaGFyYWN0ZXJzIiwKCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgICAgICByZXR1cm4gaXNOYU4ocGFyc2VGbG9hdCgiIikpICYmIHBhcnNlRmxvYXQoIiIpICE9PSBwYXJzZUZsb2F0KCIiKTsKICAgIH0sCgogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9Cn0pOwo=","id":"15.1.2.3-2-1"}]}}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
{"testsCollection":{"name":"Chapter - 15.2.3.1","numTests":"1","tests":[{"id":"15.2.3.1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS4yLjMuMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMS8xNS4yLjMuMS5qcyIsCgpkZXNjcmlwdGlvbjogIk9iamVjdC5wcm90b3R5cGUgaXMgYSBkYXRhIHByb3BlcnR5IHdpdGggZGVmYXVsdCBhdHRyaWJ1dGUgdmFsdWVzIChmYWxzZSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdCwgJ3Byb3RvdHlwZScpOwogIGlmIChkZXNjLndyaXRhYmxlID09PSBmYWxzZSAmJgogICAgICBkZXNjLmVudW1lcmFibGUgPT09IGZhbHNlICYmCiAgICAgIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSkgewogICAgcmV0dXJuIHRydWU7CiAgfQogfSwKCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsKIH0KfSk7Cg=="}]}}
|
||||
{"testsCollection":{"name":"Chapter - 15.2.3.1","numTests":"1","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS4yLjMuMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMS8xNS4yLjMuMS5qcyIsCgpkZXNjcmlwdGlvbjogIk9iamVjdC5wcm90b3R5cGUgaXMgYSBkYXRhIHByb3BlcnR5IHdpdGggZGVmYXVsdCBhdHRyaWJ1dGUgdmFsdWVzIChmYWxzZSkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdCwgJ3Byb3RvdHlwZScpOwogIGlmIChkZXNjLndyaXRhYmxlID09PSBmYWxzZSAmJgogICAgICBkZXNjLmVudW1lcmFibGUgPT09IGZhbHNlICYmCiAgICAgIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSkgewogICAgcmV0dXJuIHRydWU7CiAgfQogfSwKCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsKIH0KfSk7Cg==","id":"15.2.3.1"}]}}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
{"testsCollection":{"name":"Chapter - 15.2.4","numTests":"4","tests":[{"id":"15.2.4.2-1-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4yLjQuMi0xLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi40LzE1LjIuNC4yLzE1LjIuNC4yLTEtMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIC0gJ1tvYmplY3QgVW5kZWZpbmVkXScgd2lsbCBiZSByZXR1cm5lZCB3aGVuICd0aGlzJyB2YWx1ZSBpcyB1bmRlZmluZWQiLAoKICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodW5kZWZpbmVkKSA9PT0gIltvYmplY3QgVW5kZWZpbmVkXSI7CiAgICB9LAoKICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9KTsK"},{"id":"15.2.4.2-1-2","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4yLjQuMi0xLTIiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi40LzE1LjIuNC4yLzE1LjIuNC4yLTEtMi5qcyIsCgogICAgZGVzY3JpcHRpb246ICJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIC0gJ1tvYmplY3QgVW5kZWZpbmVkXScgd2lsbCBiZSByZXR1cm5lZCB3aGVuICd0aGlzJyB2YWx1ZSBpcyB1bmRlZmluZWQiLAoKICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHVuZGVmaW5lZCwgW10pID09PSAiW29iamVjdCBVbmRlZmluZWRdIjsKICAgIH0sCgogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9Cn0pOwo="},{"id":"15.2.4.2-2-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4yLjQuMi0yLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi40LzE1LjIuNC4yLzE1LjIuNC4yLTItMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIC0gJ1tvYmplY3QgTnVsbF0nIHdpbGwgYmUgcmV0dXJuZWQgd2hlbiAndGhpcycgdmFsdWUgaXMgbnVsbCIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChudWxsKSA9PT0gIltvYmplY3QgTnVsbF0iOwogICAgfSwKCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KfSk7Cg=="},{"id":"15.2.4.2-2-2","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4yLjQuMi0yLTIiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi40LzE1LjIuNC4yLzE1LjIuNC4yLTItMi5qcyIsCgogICAgZGVzY3JpcHRpb246ICJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIC0gJ1tvYmplY3QgTnVsbF0nIHdpbGwgYmUgcmV0dXJuZWQgd2hlbiAndGhpcycgdmFsdWUgaXMgbnVsbCIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkobnVsbCwgW10pID09PSAiW29iamVjdCBOdWxsXSI7CiAgICB9LAoKICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9KTsK"}]}}
|
||||
{"testsCollection":{"name":"Chapter - 15.2.4","numTests":"4","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4yLjQuMi0xLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi40LzE1LjIuNC4yLzE1LjIuNC4yLTEtMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIC0gJ1tvYmplY3QgVW5kZWZpbmVkXScgd2lsbCBiZSByZXR1cm5lZCB3aGVuICd0aGlzJyB2YWx1ZSBpcyB1bmRlZmluZWQiLAoKICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodW5kZWZpbmVkKSA9PT0gIltvYmplY3QgVW5kZWZpbmVkXSI7CiAgICB9LAoKICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9KTsK","id":"15.2.4.2-1-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4yLjQuMi0xLTIiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi40LzE1LjIuNC4yLzE1LjIuNC4yLTEtMi5qcyIsCgogICAgZGVzY3JpcHRpb246ICJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIC0gJ1tvYmplY3QgVW5kZWZpbmVkXScgd2lsbCBiZSByZXR1cm5lZCB3aGVuICd0aGlzJyB2YWx1ZSBpcyB1bmRlZmluZWQiLAoKICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHVuZGVmaW5lZCwgW10pID09PSAiW29iamVjdCBVbmRlZmluZWRdIjsKICAgIH0sCgogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9Cn0pOwo=","id":"15.2.4.2-1-2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4yLjQuMi0yLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi40LzE1LjIuNC4yLzE1LjIuNC4yLTItMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIC0gJ1tvYmplY3QgTnVsbF0nIHdpbGwgYmUgcmV0dXJuZWQgd2hlbiAndGhpcycgdmFsdWUgaXMgbnVsbCIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChudWxsKSA9PT0gIltvYmplY3QgTnVsbF0iOwogICAgfSwKCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KfSk7Cg==","id":"15.2.4.2-2-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS4yLjQuMi0yLTIiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi40LzE1LjIuNC4yLzE1LjIuNC4yLTItMi5qcyIsCgogICAgZGVzY3JpcHRpb246ICJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIC0gJ1tvYmplY3QgTnVsbF0nIHdpbGwgYmUgcmV0dXJuZWQgd2hlbiAndGhpcycgdmFsdWUgaXMgbnVsbCIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkobnVsbCwgW10pID09PSAiW29iamVjdCBOdWxsXSI7CiAgICB9LAoKICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9KTsK","id":"15.2.4.2-2-2"}]}}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
{"testsCollection":{"name":"Chapter - 15.4.4.10","numTests":"1","tests":[{"id":"15.4.4.10-10-c-ii-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuMTAtMTAtYy1paS0xIiwKCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTAvMTUuNC40LjEwLTEwLWMtaWktMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc2xpY2Ugd2lsbCBzbGljZSBhIHN0cmluZyBmcm9tIHN0YXJ0IHRvIGVuZCB3aGVuIGluZGV4IHByb3BlcnR5IChyZWFkLW9ubHkpIGV4aXN0cyBpbiBBcnJheS5wcm90b3R5cGUgKFN0ZXAgMTAuYy5paSkiLAoKICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAgICAgIHZhciBhcnJPYmogPSBbMSwgMiwgM107CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7CiAgICAgICAgICAgICAgICB2YWx1ZTogInRlc3QiLAogICAgICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLAogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgdmFyIG5ld0FyciA9IGFyck9iai5zbGljZSgwLCAxKTsKICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5oYXNPd25Qcm9wZXJ0eSgiMCIpICYmIG5ld0FyclswXSA9PT0gMSAmJiB0eXBlb2YgbmV3QXJyWzFdID09PSAidW5kZWZpbmVkIjsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOwogICAgICAgIH0KICAgIH0sCgogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7CiAgICB9Cn0pOwo="}]}}
|
||||
{"testsCollection":{"name":"Chapter - 15.4.4.10","numTests":"1","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuMTAtMTAtYy1paS0xIiwKCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTAvMTUuNC40LjEwLTEwLWMtaWktMS5qcyIsCgogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc2xpY2Ugd2lsbCBzbGljZSBhIHN0cmluZyBmcm9tIHN0YXJ0IHRvIGVuZCB3aGVuIGluZGV4IHByb3BlcnR5IChyZWFkLW9ubHkpIGV4aXN0cyBpbiBBcnJheS5wcm90b3R5cGUgKFN0ZXAgMTAuYy5paSkiLAoKICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAgICAgIHZhciBhcnJPYmogPSBbMSwgMiwgM107CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7CiAgICAgICAgICAgICAgICB2YWx1ZTogInRlc3QiLAogICAgICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLAogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgdmFyIG5ld0FyciA9IGFyck9iai5zbGljZSgwLCAxKTsKICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5oYXNPd25Qcm9wZXJ0eSgiMCIpICYmIG5ld0FyclswXSA9PT0gMSAmJiB0eXBlb2YgbmV3QXJyWzFdID09PSAidW5kZWZpbmVkIjsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOwogICAgICAgIH0KICAgIH0sCgogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7CiAgICB9Cn0pOwo=","id":"15.4.4.10-10-c-ii-1"}]}}
|
@ -1 +1 @@
|
||||
{"testsCollection":{"name":"Chapter - 15.4.4.12","numTests":"2","tests":[{"id":"15.4.4.12-9-a-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuMTItOS1hLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xMi8xNS40LjQuMTItOS1hLTEuanMiLAoKICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNwbGljZSAtICdmcm9tJyBpcyB0aGUgcmVzdWx0IG9mIFRvU3RyaW5nKGFjdHVhbFN0YXJ0K2spIGluIGFuIEFycmF5IiwKCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgICAgICB2YXIgYXJyT2JqID0gWzEsIDIsIDNdOwogICAgICAgIHZhciBuZXdBcnJPYmogPSBhcnJPYmouc3BsaWNlKC0yLCAxKTsKICAgICAgICByZXR1cm4gbmV3QXJyT2JqLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJPYmpbMF0gPT09IDI7CiAgICB9LAoKICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9KTsKCg=="},{"id":"15.4.4.12-9-c-ii-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuMTItOS1jLWlpLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xMi8xNS40LjQuMTItOS1jLWlpLTEuanMiLAoKICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNwbGljZSB3aWxsIHNwbGljZSBhbiBhcnJheSBldmVuIHdoZW4gQXJyYXkucHJvdG90eXBlIGhhcyBpbmRleCAnMCcgc2V0IHRvIHJlYWQtb25seSBhbmQgJ2Zyb21QcmVzZW50JyBsZXNzIHRoYW4gJ2FjdHVhbERlbGV0ZUNvdW50IChTdGVwIDkuYy5paSkiLAoKICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBhcnIgPSBbImEiLCAiYiIsICJjIl07CiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVswXSA9ICJ0ZXN0IjsKICAgICAgICAgICAgdmFyIG5ld0FyciA9IGFyci5zcGxpY2UoMiwgMSwgImQiKTsKCiAgICAgICAgICAgIHZhciB2ZXJpZnlWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2ZXJpZnlWYWx1ZSA9IGFyci5sZW5ndGggPT09IDMgJiYgYXJyWzBdID09PSAiYSIgJiYgYXJyWzFdID09PSAiYiIgJiYgYXJyWzJdID09PSAiZCIKICAgICAgICAgICAgICAgICYmIG5ld0FyclswXSA9PT0gImMiICYmIG5ld0Fyci5sZW5ndGggPT09IDE7CgogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKHZhciBwIGluIG5ld0FycikgewogICAgICAgICAgICAgICAgaWYgKG5ld0Fyci5oYXNPd25Qcm9wZXJ0eSgiMCIpICYmIHAgPT09ICIwIikgewogICAgICAgICAgICAgICAgICAgIHZlcmlmeUVudW1lcmFibGUgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgdmVyaWZ5V3JpdGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgbmV3QXJyWzBdID0gMTI7CiAgICAgICAgICAgIHZlcmlmeVdyaXRhYmxlID0gbmV3QXJyWzBdID09PSAxMjsKCiAgICAgICAgICAgIHZhciB2ZXJpZnlDb25maWd1cmFibGUgPSBmYWxzZTsKICAgICAgICAgICAgZGVsZXRlIG5ld0FyclswXTsKICAgICAgICAgICAgdmVyaWZ5Q29uZmlndXJhYmxlID0gbmV3QXJyLmhhc093blByb3BlcnR5KCIwIik7CgogICAgICAgICAgICByZXR1cm4gdmVyaWZ5VmFsdWUgJiYgIXZlcmlmeUNvbmZpZ3VyYWJsZSAmJiB2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeVdyaXRhYmxlOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07CiAgICAgICAgfQogICAgfSwKCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsKICAgIH0KfSk7Cg=="}]}}
|
||||
{"testsCollection":{"name":"Chapter - 15.4.4.12","numTests":"2","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuMTItOS1hLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xMi8xNS40LjQuMTItOS1hLTEuanMiLAoKICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNwbGljZSAtICdmcm9tJyBpcyB0aGUgcmVzdWx0IG9mIFRvU3RyaW5nKGFjdHVhbFN0YXJ0K2spIGluIGFuIEFycmF5IiwKCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAgICAgICB2YXIgYXJyT2JqID0gWzEsIDIsIDNdOwogICAgICAgIHZhciBuZXdBcnJPYmogPSBhcnJPYmouc3BsaWNlKC0yLCAxKTsKICAgICAgICByZXR1cm4gbmV3QXJyT2JqLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJPYmpbMF0gPT09IDI7CiAgICB9LAoKICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9KTsKCg==","id":"15.4.4.12-9-a-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuMTItOS1jLWlpLTEiLAoKICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xMi8xNS40LjQuMTItOS1jLWlpLTEuanMiLAoKICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNwbGljZSB3aWxsIHNwbGljZSBhbiBhcnJheSBldmVuIHdoZW4gQXJyYXkucHJvdG90eXBlIGhhcyBpbmRleCAnMCcgc2V0IHRvIHJlYWQtb25seSBhbmQgJ2Zyb21QcmVzZW50JyBsZXNzIHRoYW4gJ2FjdHVhbERlbGV0ZUNvdW50IChTdGVwIDkuYy5paSkiLAoKICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBhcnIgPSBbImEiLCAiYiIsICJjIl07CiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVswXSA9ICJ0ZXN0IjsKICAgICAgICAgICAgdmFyIG5ld0FyciA9IGFyci5zcGxpY2UoMiwgMSwgImQiKTsKCiAgICAgICAgICAgIHZhciB2ZXJpZnlWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2ZXJpZnlWYWx1ZSA9IGFyci5sZW5ndGggPT09IDMgJiYgYXJyWzBdID09PSAiYSIgJiYgYXJyWzFdID09PSAiYiIgJiYgYXJyWzJdID09PSAiZCIKICAgICAgICAgICAgICAgICYmIG5ld0FyclswXSA9PT0gImMiICYmIG5ld0Fyci5sZW5ndGggPT09IDE7CgogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKHZhciBwIGluIG5ld0FycikgewogICAgICAgICAgICAgICAgaWYgKG5ld0Fyci5oYXNPd25Qcm9wZXJ0eSgiMCIpICYmIHAgPT09ICIwIikgewogICAgICAgICAgICAgICAgICAgIHZlcmlmeUVudW1lcmFibGUgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgdmVyaWZ5V3JpdGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgbmV3QXJyWzBdID0gMTI7CiAgICAgICAgICAgIHZlcmlmeVdyaXRhYmxlID0gbmV3QXJyWzBdID09PSAxMjsKCiAgICAgICAgICAgIHZhciB2ZXJpZnlDb25maWd1cmFibGUgPSBmYWxzZTsKICAgICAgICAgICAgZGVsZXRlIG5ld0FyclswXTsKICAgICAgICAgICAgdmVyaWZ5Q29uZmlndXJhYmxlID0gbmV3QXJyLmhhc093blByb3BlcnR5KCIwIik7CgogICAgICAgICAgICByZXR1cm4gdmVyaWZ5VmFsdWUgJiYgIXZlcmlmeUNvbmZpZ3VyYWJsZSAmJiB2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeVdyaXRhYmxlOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07CiAgICAgICAgfQogICAgfSwKCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsKICAgIH0KfSk7Cg==","id":"15.4.4.12-9-c-ii-1"}]}}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
{"testsCollection":{"name":"Chapter - 15.4.4.4","numTests":"2","tests":[{"id":"15.4.4.4-5-b-iii-3-b-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuNC01LWItaWlpLTMtYi0xIiwKCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuNC8xNS40LjQuNC01LWItaWlpLTMtYi0xLmpzIiwKCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5jb25jYXQgd2lsbCBjb25jYXQgYW4gQXJyYXkgd2hlbiBpbmRleCBwcm9wZXJ0eSAocmVhZC1vbmx5KSBleGlzdHMgaW4gQXJyYXkucHJvdG90eXBlIChTdGVwIDUuYi5paWkuMy5iKSIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7CiAgICAgICAgICAgICAgICB2YWx1ZTogMTAwLAogICAgICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLAogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgdmFyIG9sZEFyciA9IFsxMDFdOwoKICAgICAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbChvbGRBcnIpOwoKICAgICAgICAgICAgdmFyIHZlcmlmeVZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgIHZlcmlmeVZhbHVlID0gbmV3QXJyWzBdID09PSAxMDE7CgogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKHZhciBwIGluIG5ld0FycikgewogICAgICAgICAgICAgICAgaWYgKHAgPT09ICIwIiAmJiBuZXdBcnIuaGFzT3duUHJvcGVydHkoIjAiKSkgewogICAgICAgICAgICAgICAgICAgIHZlcmlmeUVudW1lcmFibGUgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgdmVyaWZ5V3JpdGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgbmV3QXJyWzBdID0gMTI7CiAgICAgICAgICAgIHZlcmlmeVdyaXRhYmxlID0gbmV3QXJyWzBdID09PSAxMjsKCiAgICAgICAgICAgIHZhciB2ZXJpZnlDb25maWd1cmFibGUgPSBmYWxzZTsKICAgICAgICAgICAgZGVsZXRlIG5ld0FyclswXTsKICAgICAgICAgICAgdmVyaWZ5Q29uZmlndXJhYmxlID0gbmV3QXJyLmhhc093blByb3BlcnR5KCIwIik7CgogICAgICAgICAgICByZXR1cm4gdmVyaWZ5VmFsdWUgJiYgIXZlcmlmeUNvbmZpZ3VyYWJsZSAmJiB2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeVdyaXRhYmxlOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07CiAgICAgICAgfQogICAgfSwKCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsKICAgIH0KfSk7Cg=="},{"id":"15.4.4.4-5-c-i-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuNC01LWMtaS0xIiwKCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuNC8xNS40LjQuNC01LWMtaS0xLmpzIiwKCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5jb25jYXQgd2lsbCBjb25jYXQgYW4gQXJyYXkgd2hlbiBpbmRleCBwcm9wZXJ0eSAocmVhZC1vbmx5KSBleGlzdHMgaW4gQXJyYXkucHJvdG90eXBlIChTdGVwIDUuYy5pKSIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7CiAgICAgICAgICAgICAgICB2YWx1ZTogMTAwLAogICAgICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLAogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbCgxMDEpOwoKICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5oYXNPd25Qcm9wZXJ0eSgiMCIpICYmIG5ld0FyclswXSA9PT0gMTAxOwoKICAgICAgICAgICAgdmFyIHZlcmlmeVZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgIHZlcmlmeVZhbHVlID0gbmV3QXJyWzBdID09PSAxMDE7CgogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKHZhciBwIGluIG5ld0FycikgewogICAgICAgICAgICAgICAgaWYgKHAgPT09ICIwIiAmJiBuZXdBcnIuaGFzT3duUHJvcGVydHkoIjAiKSkgewogICAgICAgICAgICAgICAgICAgIHZlcmlmeUVudW1lcmFibGUgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgdmVyaWZ5V3JpdGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgbmV3QXJyWzBdID0gMTI7CiAgICAgICAgICAgIHZlcmlmeVdyaXRhYmxlID0gbmV3QXJyWzBdID09PSAxMjsKCiAgICAgICAgICAgIHZhciB2ZXJpZnlDb25maWd1cmFibGUgPSBmYWxzZTsKICAgICAgICAgICAgZGVsZXRlIG5ld0FyclswXTsKICAgICAgICAgICAgdmVyaWZ5Q29uZmlndXJhYmxlID0gbmV3QXJyLmhhc093blByb3BlcnR5KCIwIik7CgogICAgICAgICAgICByZXR1cm4gdmVyaWZ5VmFsdWUgJiYgIXZlcmlmeUNvbmZpZ3VyYWJsZSAmJiB2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeVdyaXRhYmxlOwoKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOwogICAgICAgIH0KICAgIH0sCgogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7CiAgICB9Cn0pOwo="}]}}
|
||||
{"testsCollection":{"name":"Chapter - 15.4.4.4","numTests":"2","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuNC01LWItaWlpLTMtYi0xIiwKCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuNC8xNS40LjQuNC01LWItaWlpLTMtYi0xLmpzIiwKCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5jb25jYXQgd2lsbCBjb25jYXQgYW4gQXJyYXkgd2hlbiBpbmRleCBwcm9wZXJ0eSAocmVhZC1vbmx5KSBleGlzdHMgaW4gQXJyYXkucHJvdG90eXBlIChTdGVwIDUuYi5paWkuMy5iKSIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7CiAgICAgICAgICAgICAgICB2YWx1ZTogMTAwLAogICAgICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLAogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgdmFyIG9sZEFyciA9IFsxMDFdOwoKICAgICAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbChvbGRBcnIpOwoKICAgICAgICAgICAgdmFyIHZlcmlmeVZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgIHZlcmlmeVZhbHVlID0gbmV3QXJyWzBdID09PSAxMDE7CgogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKHZhciBwIGluIG5ld0FycikgewogICAgICAgICAgICAgICAgaWYgKHAgPT09ICIwIiAmJiBuZXdBcnIuaGFzT3duUHJvcGVydHkoIjAiKSkgewogICAgICAgICAgICAgICAgICAgIHZlcmlmeUVudW1lcmFibGUgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgdmVyaWZ5V3JpdGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgbmV3QXJyWzBdID0gMTI7CiAgICAgICAgICAgIHZlcmlmeVdyaXRhYmxlID0gbmV3QXJyWzBdID09PSAxMjsKCiAgICAgICAgICAgIHZhciB2ZXJpZnlDb25maWd1cmFibGUgPSBmYWxzZTsKICAgICAgICAgICAgZGVsZXRlIG5ld0FyclswXTsKICAgICAgICAgICAgdmVyaWZ5Q29uZmlndXJhYmxlID0gbmV3QXJyLmhhc093blByb3BlcnR5KCIwIik7CgogICAgICAgICAgICByZXR1cm4gdmVyaWZ5VmFsdWUgJiYgIXZlcmlmeUNvbmZpZ3VyYWJsZSAmJiB2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeVdyaXRhYmxlOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07CiAgICAgICAgfQogICAgfSwKCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsKICAgIH0KfSk7Cg==","id":"15.4.4.4-5-b-iii-3-b-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoewogICAgaWQ6ICIxNS40LjQuNC01LWMtaS0xIiwKCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuNC8xNS40LjQuNC01LWMtaS0xLmpzIiwKCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5jb25jYXQgd2lsbCBjb25jYXQgYW4gQXJyYXkgd2hlbiBpbmRleCBwcm9wZXJ0eSAocmVhZC1vbmx5KSBleGlzdHMgaW4gQXJyYXkucHJvdG90eXBlIChTdGVwIDUuYy5pKSIsCgogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7CiAgICAgICAgICAgICAgICB2YWx1ZTogMTAwLAogICAgICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLAogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbCgxMDEpOwoKICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5oYXNPd25Qcm9wZXJ0eSgiMCIpICYmIG5ld0FyclswXSA9PT0gMTAxOwoKICAgICAgICAgICAgdmFyIHZlcmlmeVZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgIHZlcmlmeVZhbHVlID0gbmV3QXJyWzBdID09PSAxMDE7CgogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKHZhciBwIGluIG5ld0FycikgewogICAgICAgICAgICAgICAgaWYgKHAgPT09ICIwIiAmJiBuZXdBcnIuaGFzT3duUHJvcGVydHkoIjAiKSkgewogICAgICAgICAgICAgICAgICAgIHZlcmlmeUVudW1lcmFibGUgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgdmVyaWZ5V3JpdGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgbmV3QXJyWzBdID0gMTI7CiAgICAgICAgICAgIHZlcmlmeVdyaXRhYmxlID0gbmV3QXJyWzBdID09PSAxMjsKCiAgICAgICAgICAgIHZhciB2ZXJpZnlDb25maWd1cmFibGUgPSBmYWxzZTsKICAgICAgICAgICAgZGVsZXRlIG5ld0FyclswXTsKICAgICAgICAgICAgdmVyaWZ5Q29uZmlndXJhYmxlID0gbmV3QXJyLmhhc093blByb3BlcnR5KCIwIik7CgogICAgICAgICAgICByZXR1cm4gdmVyaWZ5VmFsdWUgJiYgIXZlcmlmeUNvbmZpZ3VyYWJsZSAmJiB2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeVdyaXRhYmxlOwoKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOwogICAgICAgIH0KICAgIH0sCgogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7CiAgICB9Cn0pOwo=","id":"15.4.4.4-5-c-i-1"}]}}
|
@ -1 +1 @@
|
||||
{"testsCollection":{"name":"Chapter - 15.4.5","numTests":"6","tests":[{"id":"15.4.5-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUtMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNS8xNS40LjUtMS5qcyIsCgpkZXNjcmlwdGlvbjogIkFycmF5IGluc3RhbmNlcyBoYXZlIFtbQ2xhc3NdXSBzZXQgdG8gJ0FycmF5JyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICB2YXIgYSA9IFtdOwogIHZhciBzID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpOwogIGlmIChzID09PSAnW29iamVjdCBBcnJheV0nKSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiB9Cn0pOwo="},{"id":"15.4.5.1-3.d-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS0zLmQtMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNS8xNS40LjUuMS8xNS40LjUuMS0zLmQtMS5qcyIsCgpkZXNjcmlwdGlvbjogIlRocm93IFJhbmdlRXJyb3IgaWYgYXR0ZW1wdCB0byBzZXQgYXJyYXkgbGVuZ3RoIHByb3BlcnR5IHRvIDQyOTQ5NjcyOTYgKDIqKjMyKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICB0cnkgewogICAgICBbXS5sZW5ndGggPSA0Mjk0OTY3Mjk2IDsKICB9IGNhdGNoIChlKSB7CglpZiAoZSBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpIHJldHVybiB0cnVlOwogIH0KIH0KfSk7Cg=="},{"id":"15.4.5.1-3.d-2","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS0zLmQtMiIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNS8xNS40LjUuMS8xNS40LjUuMS0zLmQtMi5qcyIsCgpkZXNjcmlwdGlvbjogIlRocm93IFJhbmdlRXJyb3IgaWYgYXR0ZW1wdCB0byBzZXQgYXJyYXkgbGVuZ3RoIHByb3BlcnR5IHRvIDQyOTQ5NjcyOTcgKDErMioqMzIpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHRyeSB7CiAgICAgIFtdLmxlbmd0aCA9IDQyOTQ5NjcyOTcgOwogIH0gY2F0Y2ggKGUpIHsKCWlmIChlIGluc3RhbmNlb2YgUmFuZ2VFcnJvcikgcmV0dXJuIHRydWU7CiAgfQogfQp9KTsK"},{"id":"15.4.5.1-3.d-3","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS0zLmQtMyIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNS8xNS40LjUuMS8xNS40LjUuMS0zLmQtMy5qcyIsCgpkZXNjcmlwdGlvbjogIlNldCBhcnJheSBsZW5ndGggcHJvcGVydHkgdG8gbWF4IHZhbHVlIDQyOTQ5NjcyOTUgKDIqKjMyLTEsKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgIAogIHZhciBhID1bXTsKICBhLmxlbmd0aCA9IDQyOTQ5NjcyOTUgOwogIHJldHVybiBhLmxlbmd0aD09PTQyOTQ5NjcyOTUgOwogfQp9KTsK"},{"id":"15.4.5.1-5-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS01LTEiLAoKcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjUvMTUuNC41LjEvMTUuNC41LjEtNS0xLmpzIiwKCmRlc2NyaXB0aW9uOiAiRGVmaW5pbmcgYSBwcm9wZXJ0eSBuYW1lZCA0Mjk0OTY3Mjk1ICgyKiozMi0xKShub3QgYW4gYXJyYXkgZWxlbWVudCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7ICAKICB2YXIgYSA9W107CiAgYVs0Mjk0OTY3Mjk1XSA9ICJub3QgYW4gYXJyYXkgZWxlbWVudCIgOwogIHJldHVybiBhWzQyOTQ5NjcyOTVdID09PSAibm90IGFuIGFycmF5IGVsZW1lbnQiOwogfQp9KTsK"},{"id":"15.4.5.1-5-2","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS01LTIiLAoKcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjUvMTUuNC41LjEvMTUuNC41LjEtNS0yLmpzIiwKCmRlc2NyaXB0aW9uOiAiRGVmaW5pbmcgYSBwcm9wZXJ0eSBuYW1lZCA0Mjk0OTY3Mjk1ICgyKiozMi0xKSBkb2Vzbid0IGNoYW5nZSBsZW5ndGggb2YgdGhlIGFycmF5IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyAgCiAgdmFyIGEgPVswLDEsMl07CiAgYVs0Mjk0OTY3Mjk1XSA9ICJub3QgYW4gYXJyYXkgZWxlbWVudCIgOwogIHJldHVybiBhLmxlbmd0aD09PTM7CiB9Cn0pOwo="}]}}
|
||||
{"testsCollection":{"name":"Chapter - 15.4.5","numTests":"6","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUtMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNS8xNS40LjUtMS5qcyIsCgpkZXNjcmlwdGlvbjogIkFycmF5IGluc3RhbmNlcyBoYXZlIFtbQ2xhc3NdXSBzZXQgdG8gJ0FycmF5JyIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICB2YXIgYSA9IFtdOwogIHZhciBzID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpOwogIGlmIChzID09PSAnW29iamVjdCBBcnJheV0nKSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiB9Cn0pOwo=","id":"15.4.5-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS0zLmQtMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNS8xNS40LjUuMS8xNS40LjUuMS0zLmQtMS5qcyIsCgpkZXNjcmlwdGlvbjogIlRocm93IFJhbmdlRXJyb3IgaWYgYXR0ZW1wdCB0byBzZXQgYXJyYXkgbGVuZ3RoIHByb3BlcnR5IHRvIDQyOTQ5NjcyOTYgKDIqKjMyKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICB0cnkgewogICAgICBbXS5sZW5ndGggPSA0Mjk0OTY3Mjk2IDsKICB9IGNhdGNoIChlKSB7CglpZiAoZSBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpIHJldHVybiB0cnVlOwogIH0KIH0KfSk7Cg==","id":"15.4.5.1-3.d-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS0zLmQtMiIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNS8xNS40LjUuMS8xNS40LjUuMS0zLmQtMi5qcyIsCgpkZXNjcmlwdGlvbjogIlRocm93IFJhbmdlRXJyb3IgaWYgYXR0ZW1wdCB0byBzZXQgYXJyYXkgbGVuZ3RoIHByb3BlcnR5IHRvIDQyOTQ5NjcyOTcgKDErMioqMzIpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHRyeSB7CiAgICAgIFtdLmxlbmd0aCA9IDQyOTQ5NjcyOTcgOwogIH0gY2F0Y2ggKGUpIHsKCWlmIChlIGluc3RhbmNlb2YgUmFuZ2VFcnJvcikgcmV0dXJuIHRydWU7CiAgfQogfQp9KTsK","id":"15.4.5.1-3.d-2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS0zLmQtMyIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNS8xNS40LjUuMS8xNS40LjUuMS0zLmQtMy5qcyIsCgpkZXNjcmlwdGlvbjogIlNldCBhcnJheSBsZW5ndGggcHJvcGVydHkgdG8gbWF4IHZhbHVlIDQyOTQ5NjcyOTUgKDIqKjMyLTEsKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgIAogIHZhciBhID1bXTsKICBhLmxlbmd0aCA9IDQyOTQ5NjcyOTUgOwogIHJldHVybiBhLmxlbmd0aD09PTQyOTQ5NjcyOTUgOwogfQp9KTsK","id":"15.4.5.1-3.d-3"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS01LTEiLAoKcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjUvMTUuNC41LjEvMTUuNC41LjEtNS0xLmpzIiwKCmRlc2NyaXB0aW9uOiAiRGVmaW5pbmcgYSBwcm9wZXJ0eSBuYW1lZCA0Mjk0OTY3Mjk1ICgyKiozMi0xKShub3QgYW4gYXJyYXkgZWxlbWVudCkiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7ICAKICB2YXIgYSA9W107CiAgYVs0Mjk0OTY3Mjk1XSA9ICJub3QgYW4gYXJyYXkgZWxlbWVudCIgOwogIHJldHVybiBhWzQyOTQ5NjcyOTVdID09PSAibm90IGFuIGFycmF5IGVsZW1lbnQiOwogfQp9KTsK","id":"15.4.5.1-5-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS40LjUuMS01LTIiLAoKcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjUvMTUuNC41LjEvMTUuNC41LjEtNS0yLmpzIiwKCmRlc2NyaXB0aW9uOiAiRGVmaW5pbmcgYSBwcm9wZXJ0eSBuYW1lZCA0Mjk0OTY3Mjk1ICgyKiozMi0xKSBkb2Vzbid0IGNoYW5nZSBsZW5ndGggb2YgdGhlIGFycmF5IiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyAgCiAgdmFyIGEgPVswLDEsMl07CiAgYVs0Mjk0OTY3Mjk1XSA9ICJub3QgYW4gYXJyYXkgZWxlbWVudCIgOwogIHJldHVybiBhLmxlbmd0aD09PTM7CiB9Cn0pOwo=","id":"15.4.5.1-5-2"}]}}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
{"testsCollection":{"name":"Chapter - 15.7","numTests":"5","tests":[{"id":"15.7.3-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjMtMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS43LzE1LjcuMy8xNS43LjMtMS5qcyIsCgpkZXNjcmlwdGlvbjogIk51bWJlciBjb25zdHJ1Y3RvciAtIFtbUHJvdG90eXBlXV0gaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKE51bWJlcikgPT09IHRydWUpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0KfSk7Cg=="},{"id":"15.7.3-2","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjMtMiIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS43LzE1LjcuMy8xNS43LjMtMi5qcyIsCgpkZXNjcmlwdGlvbjogIk51bWJlciBjb25zdHJ1Y3RvciAtIFtbUHJvdG90eXBlXV0gaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgKHVzaW5nIGdldFByb3RvdHlwZU9mKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICB2YXIgcCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihOdW1iZXIpOwogIGlmIChwID09PSBGdW5jdGlvbi5wcm90b3R5cGUpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0sCgpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKTsKIH0KfSk7Cg=="},{"id":"15.7.3.1-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjMuMS0xIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjcvMTUuNy4zLzE1LjcuMy4xLzE1LjcuMy4xLTEuanMiLAoKZGVzY3JpcHRpb246ICJOdW1iZXIucHJvdG90eXBlIGlzIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlcyAoZmFsc2UpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHZhciBkID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOdW1iZXIsICdwcm90b3R5cGUnKTsKICAKICBpZiAoZC53cml0YWJsZSA9PT0gZmFsc2UgJiYKICAgICAgZC5lbnVtZXJhYmxlID09PSBmYWxzZSAmJgogICAgICBkLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0sCgpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7CiB9Cn0pOwo="},{"id":"15.7.3.1-2","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjMuMS0yIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjcvMTUuNy4zLzE1LjcuMy4xLzE1LjcuMy4xLTIuanMiLAoKZGVzY3JpcHRpb246ICJOdW1iZXIucHJvdG90eXBlLCBpbml0aWFsIHZhbHVlIGlzIHRoZSBOdW1iZXIgcHJvdG90eXBlIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAvLyBhc3N1bWUgdGhhdCBOdW1iZXIucHJvdG90eXBlIGhhcyBub3QgYmVlbiBtb2RpZmllZC4KICByZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBOdW1iZXIoNDIpKT09PU51bWJlci5wcm90b3R5cGU7CiB9LAoKcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRQcm90b3R5cGVPZik7CiB9Cgp9KTsK"},{"id":"15.7.4-1","code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjQtMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS43LzE1LjcuMy8xNS43LjQvMTUuNy40LTEuanMiLAoKZGVzY3JpcHRpb246ICJOdW1iZXIgcHJvdG90eXBlIG9iamVjdDogaXRzIFtbQ2xhc3NdXSBtdXN0IGJlICdOdW1iZXInIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHZhciBudW1Qcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgTnVtYmVyKDQyKSk7CiAgdmFyIHMgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobnVtUHJvdG8gKTsKICByZXR1cm4gKHMgPT09ICdbb2JqZWN0IE51bWJlcl0nKSA7CiB9LAoKcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRQcm90b3R5cGVPZik7CiB9Cgp9KTsK"}]}}
|
||||
{"testsCollection":{"name":"Chapter - 15.7","numTests":"5","tests":[{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjMtMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS43LzE1LjcuMy8xNS43LjMtMS5qcyIsCgpkZXNjcmlwdGlvbjogIk51bWJlciBjb25zdHJ1Y3RvciAtIFtbUHJvdG90eXBlXV0gaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QiLAoKdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7CiAgaWYgKEZ1bmN0aW9uLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKE51bWJlcikgPT09IHRydWUpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0KfSk7Cg==","id":"15.7.3-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjMtMiIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS43LzE1LjcuMy8xNS43LjMtMi5qcyIsCgpkZXNjcmlwdGlvbjogIk51bWJlciBjb25zdHJ1Y3RvciAtIFtbUHJvdG90eXBlXV0gaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSBvYmplY3QgKHVzaW5nIGdldFByb3RvdHlwZU9mKSIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICB2YXIgcCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihOdW1iZXIpOwogIGlmIChwID09PSBGdW5jdGlvbi5wcm90b3R5cGUpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0sCgpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldFByb3RvdHlwZU9mKTsKIH0KfSk7Cg==","id":"15.7.3-2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjMuMS0xIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjcvMTUuNy4zLzE1LjcuMy4xLzE1LjcuMy4xLTEuanMiLAoKZGVzY3JpcHRpb246ICJOdW1iZXIucHJvdG90eXBlIGlzIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlcyAoZmFsc2UpIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHZhciBkID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOdW1iZXIsICdwcm90b3R5cGUnKTsKICAKICBpZiAoZC53cml0YWJsZSA9PT0gZmFsc2UgJiYKICAgICAgZC5lbnVtZXJhYmxlID09PSBmYWxzZSAmJgogICAgICBkLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHsKICAgIHJldHVybiB0cnVlOwogIH0KIH0sCgpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsKICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7CiB9Cn0pOwo=","id":"15.7.3.1-1"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjMuMS0yIiwKCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjcvMTUuNy4zLzE1LjcuMy4xLzE1LjcuMy4xLTIuanMiLAoKZGVzY3JpcHRpb246ICJOdW1iZXIucHJvdG90eXBlLCBpbml0aWFsIHZhbHVlIGlzIHRoZSBOdW1iZXIgcHJvdG90eXBlIG9iamVjdCIsCgp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsKICAvLyBhc3N1bWUgdGhhdCBOdW1iZXIucHJvdG90eXBlIGhhcyBub3QgYmVlbiBtb2RpZmllZC4KICByZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBOdW1iZXIoNDIpKT09PU51bWJlci5wcm90b3R5cGU7CiB9LAoKcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRQcm90b3R5cGVPZik7CiB9Cgp9KTsK","id":"15.7.3.1-2"},{"code":"RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsKaWQ6ICIxNS43LjQtMSIsCgpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS43LzE1LjcuMy8xNS43LjQvMTUuNy40LTEuanMiLAoKZGVzY3JpcHRpb246ICJOdW1iZXIgcHJvdG90eXBlIG9iamVjdDogaXRzIFtbQ2xhc3NdXSBtdXN0IGJlICdOdW1iZXInIiwKCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgewogIHZhciBudW1Qcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgTnVtYmVyKDQyKSk7CiAgdmFyIHMgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobnVtUHJvdG8gKTsKICByZXR1cm4gKHMgPT09ICdbb2JqZWN0IE51bWJlcl0nKSA7CiB9LAoKcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7CiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRQcm90b3R5cGVPZik7CiB9Cgp9KTsK","id":"15.7.4-1"}]}}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
{"numTests":10456,"version":"0.6.2","date":"2011-03-23","testSuite":["resources/scripts/testcases/07_Lexical_Conventions.json","resources/scripts/testcases/08_Types.json","resources/scripts/testcases/09_Type_Conversion.json","resources/scripts/testcases/10_Execution_Contexts.json","resources/scripts/testcases/11.10_Binary_Bitwise_Operators.json","resources/scripts/testcases/11.11_Binary_Logical_Operators.json","resources/scripts/testcases/11.12_Conditional_Operator.json","resources/scripts/testcases/11.13_Assignment_Operators.json","resources/scripts/testcases/11.14_Comma_Operator.json","resources/scripts/testcases/11.1_Primary_Expressions.json","resources/scripts/testcases/11.2_Left_Hand_Side_Expressions.json","resources/scripts/testcases/11.3_PostfixExpressions.json","resources/scripts/testcases/11.4_Unary_Operators.json","resources/scripts/testcases/11.5_Multiplicative_Operators.json","resources/scripts/testcases/11.6_Additive_Operators.json","resources/scripts/testcases/11.7_Bitwise_Shift_Operators.json","resources/scripts/testcases/11.8_Relational_Operators.json","resources/scripts/testcases/11.9_Equality_Operators.json","resources/scripts/testcases/12_Statement.json","resources/scripts/testcases/13_Function_Definition.json","resources/scripts/testcases/14_Program.json","resources/scripts/testcases/15.10_RegExp_Objects.json","resources/scripts/testcases/15.11_Error_Objects.json","resources/scripts/testcases/15.1_The_Global_Object.json","resources/scripts/testcases/15.2_Object_Objects.json","resources/scripts/testcases/15.3_Function_Objects.json","resources/scripts/testcases/15.4_Array_Objects.json","resources/scripts/testcases/15.5_String_Objects.json","resources/scripts/testcases/15.6_Boolean_Objects.json","resources/scripts/testcases/15.7_Number_Objects.json","resources/scripts/testcases/15.8_The_Math_Object.json","resources/scripts/testcases/15.9_Date_Objects.json","resources/scripts/testcases/chapter07.json","resources/scripts/testcases/chapter10.json","resources/scripts/testcases/chapter11.json","resources/scripts/testcases/chapter12.json","resources/scripts/testcases/chapter13.json","resources/scripts/testcases/15.1.json","resources/scripts/testcases/15.10.json","resources/scripts/testcases/15.11.json","resources/scripts/testcases/15.12.json","resources/scripts/testcases/15.2.3.1.json","resources/scripts/testcases/15.2.3.10.json","resources/scripts/testcases/15.2.3.11.json","resources/scripts/testcases/15.2.3.12.json","resources/scripts/testcases/15.2.3.13.json","resources/scripts/testcases/15.2.3.14.json","resources/scripts/testcases/15.2.3.2.json","resources/scripts/testcases/15.2.3.3.json","resources/scripts/testcases/15.2.3.4.json","resources/scripts/testcases/15.2.3.5.json","resources/scripts/testcases/15.2.3.6.json","resources/scripts/testcases/15.2.3.7.json","resources/scripts/testcases/15.2.3.8.json","resources/scripts/testcases/15.2.3.9.json","resources/scripts/testcases/15.2.4.json","resources/scripts/testcases/15.3.json","resources/scripts/testcases/15.4.3.json","resources/scripts/testcases/15.4.4.10.json","resources/scripts/testcases/15.4.4.12.json","resources/scripts/testcases/15.4.4.14.json","resources/scripts/testcases/15.4.4.15.json","resources/scripts/testcases/15.4.4.16.json","resources/scripts/testcases/15.4.4.17.json","resources/scripts/testcases/15.4.4.18.json","resources/scripts/testcases/15.4.4.19.json","resources/scripts/testcases/15.4.4.20.json","resources/scripts/testcases/15.4.4.21.json","resources/scripts/testcases/15.4.4.22.json","resources/scripts/testcases/15.4.4.4.json","resources/scripts/testcases/15.4.5.json","resources/scripts/testcases/15.5.json","resources/scripts/testcases/15.7.json","resources/scripts/testcases/15.9.json"]}
|
||||
{"date":"2011-03-23","numTests":10456,"testSuite":["resources/scripts/testcases/07_Lexical_Conventions.json","resources/scripts/testcases/08_Types.json","resources/scripts/testcases/09_Type_Conversion.json","resources/scripts/testcases/10_Execution_Contexts.json","resources/scripts/testcases/11.10_Binary_Bitwise_Operators.json","resources/scripts/testcases/11.11_Binary_Logical_Operators.json","resources/scripts/testcases/11.12_Conditional_Operator.json","resources/scripts/testcases/11.13_Assignment_Operators.json","resources/scripts/testcases/11.14_Comma_Operator.json","resources/scripts/testcases/11.1_Primary_Expressions.json","resources/scripts/testcases/11.2_Left_Hand_Side_Expressions.json","resources/scripts/testcases/11.3_PostfixExpressions.json","resources/scripts/testcases/11.4_Unary_Operators.json","resources/scripts/testcases/11.5_Multiplicative_Operators.json","resources/scripts/testcases/11.6_Additive_Operators.json","resources/scripts/testcases/11.7_Bitwise_Shift_Operators.json","resources/scripts/testcases/11.8_Relational_Operators.json","resources/scripts/testcases/11.9_Equality_Operators.json","resources/scripts/testcases/12_Statement.json","resources/scripts/testcases/13_Function_Definition.json","resources/scripts/testcases/14_Program.json","resources/scripts/testcases/15.10_RegExp_Objects.json","resources/scripts/testcases/15.11_Error_Objects.json","resources/scripts/testcases/15.1_The_Global_Object.json","resources/scripts/testcases/15.2_Object_Objects.json","resources/scripts/testcases/15.3_Function_Objects.json","resources/scripts/testcases/15.4_Array_Objects.json","resources/scripts/testcases/15.5_String_Objects.json","resources/scripts/testcases/15.6_Boolean_Objects.json","resources/scripts/testcases/15.7_Number_Objects.json","resources/scripts/testcases/15.8_The_Math_Object.json","resources/scripts/testcases/15.9_Date_Objects.json","resources/scripts/testcases/chapter07.json","resources/scripts/testcases/chapter10.json","resources/scripts/testcases/chapter11.json","resources/scripts/testcases/chapter12.json","resources/scripts/testcases/chapter13.json","resources/scripts/testcases/15.1.json","resources/scripts/testcases/15.10.json","resources/scripts/testcases/15.11.json","resources/scripts/testcases/15.12.json","resources/scripts/testcases/15.2.3.1.json","resources/scripts/testcases/15.2.3.10.json","resources/scripts/testcases/15.2.3.11.json","resources/scripts/testcases/15.2.3.12.json","resources/scripts/testcases/15.2.3.13.json","resources/scripts/testcases/15.2.3.14.json","resources/scripts/testcases/15.2.3.2.json","resources/scripts/testcases/15.2.3.3.json","resources/scripts/testcases/15.2.3.4.json","resources/scripts/testcases/15.2.3.5.json","resources/scripts/testcases/15.2.3.6.json","resources/scripts/testcases/15.2.3.7.json","resources/scripts/testcases/15.2.3.8.json","resources/scripts/testcases/15.2.3.9.json","resources/scripts/testcases/15.2.4.json","resources/scripts/testcases/15.3.json","resources/scripts/testcases/15.4.3.json","resources/scripts/testcases/15.4.4.10.json","resources/scripts/testcases/15.4.4.12.json","resources/scripts/testcases/15.4.4.14.json","resources/scripts/testcases/15.4.4.15.json","resources/scripts/testcases/15.4.4.16.json","resources/scripts/testcases/15.4.4.17.json","resources/scripts/testcases/15.4.4.18.json","resources/scripts/testcases/15.4.4.19.json","resources/scripts/testcases/15.4.4.20.json","resources/scripts/testcases/15.4.4.21.json","resources/scripts/testcases/15.4.4.22.json","resources/scripts/testcases/15.4.4.4.json","resources/scripts/testcases/15.4.5.json","resources/scripts/testcases/15.5.json","resources/scripts/testcases/15.7.json","resources/scripts/testcases/15.9.json"],"version":"0.6.2"}
|
Loading…
x
Reference in New Issue
Block a user