本文整理汇总了Python中test_framework.generic_test.generic_test_main函数的典型用法代码示例。如果您正苦于以下问题:Python generic_test_main函数的具体用法?Python generic_test_main怎么用?Python generic_test_main使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了generic_test_main函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: find_first_greater_than_k
from test_framework import generic_test
def find_first_greater_than_k(tree, k):
# TODO - you fill in here.
return None
def find_first_greater_than_k_wrapper(tree, k):
result = find_first_greater_than_k(tree, k)
return result.data if result else -1
if __name__ == '__main__':
exit(
generic_test.generic_test_main("search_first_greater_value_in_bst.py",
'search_first_greater_value_in_bst.tsv',
find_first_greater_than_k_wrapper))
示例2: all
if t.d == -1: # Unvisited vertex.
t.d = q[0].d + 1
q.append(t)
elif t.d == q[0].d:
return False
del q[0]
return True
return all(bfs(v) for v in graph if v.d == -1)
@enable_executor_hook
def is_any_placement_feasible_wrapper(executor, k, edges):
if k <= 0:
raise RuntimeError('Invalid k value')
graph = [GraphVertex() for _ in range(k)]
for (fr, to) in edges:
if fr < 0 or fr >= k or to < 0 or to >= k:
raise RuntimeError('Invalid vertex index')
graph[fr].edges.append(graph[to])
return executor.run(functools.partial(is_any_placement_feasible, graph))
if __name__ == '__main__':
exit(
generic_test.generic_test_main("is_circuit_wirable.py",
'is_circuit_wirable.tsv',
is_any_placement_feasible_wrapper))
示例3: optimum_subject_to_item_and_capacity
if k < 0:
# No items can be chosen.
return 0
if V[k][available_capacity] == -1:
without_curr_item = optimum_subject_to_item_and_capacity(
k - 1, available_capacity)
with_curr_item = (0 if available_capacity < items[k].weight else (
items[k].value + optimum_subject_to_item_and_capacity(
k - 1, available_capacity - items[k].weight)))
V[k][available_capacity] = max(without_curr_item, with_curr_item)
return V[k][available_capacity]
# V[i][j] holds the optimum value when we choose from items[:i + 1] and have
# a capacity of j.
V = [[-1] * (capacity + 1) for _ in items]
return optimum_subject_to_item_and_capacity(len(items) - 1, capacity)
@enable_executor_hook
def optimum_subject_to_capacity_wrapper(executor, items, capacity):
items = [Item(*i) for i in items]
return executor.run(
functools.partial(optimum_subject_to_capacity, items, capacity))
if __name__ == '__main__':
exit(
generic_test.generic_test_main("knapsack.py", "knapsack.tsv",
optimum_subject_to_capacity_wrapper))
示例4: find_element_appears_once
from test_framework import generic_test
def find_element_appears_once(A):
# TODO - you fill in here.
return 0
if __name__ == '__main__':
exit(
generic_test.generic_test_main("element_appearing_once.py",
'element_appearing_once.tsv',
find_element_appears_once))
示例5: find_anagrams
import collections
from test_framework import generic_test, test_utils
def find_anagrams(dictionary):
sorted_string_to_anagrams = collections.defaultdict(list)
for s in dictionary:
# Sorts the string, uses it as a key, and then appends the original
# string as another value into hash table.
sorted_string_to_anagrams[''.join(sorted(s))].append(s)
return [
group for group in sorted_string_to_anagrams.values()
if len(group) >= 2
]
if __name__ == '__main__':
exit(
generic_test.generic_test_main(
"anagrams.py",
"anagrams.tsv",
find_anagrams,
comparator=test_utils.unordered_compare))
示例6: multiply
from test_framework import generic_test
def multiply(x, y):
def add(a, b):
while b:
carry = a & b
a, b = a ^ b, carry << 1
return a
running_sum = 0
while x: # Examines each bit of x.
if x & 1:
running_sum = add(running_sum, y)
x, y = x >> 1, y << 1
return running_sum
if __name__ == '__main__':
exit(
generic_test.generic_test_main("primitive_multiply.py",
'primitive_multiply.tsv', multiply))
示例7: len
'{} > {}'.format(A[i - 1], A[i]))
if i + 1 < len(A):
if A[i] < A[i + 1]:
raise TestFailure().with_property(
PropertyName.RESULT, A).with_mismatch_info(
i, 'A[{}] >= A[{}]'.format(i, i + 1),
'{} < {}'.format(A[i], A[i + 1]))
else:
if i > 0:
if A[i - 1] < A[i]:
raise TestFailure().with_property(
PropertyName.RESULT, A).with_mismatch_info(
i, 'A[{}] >= A[{}]'.format(i - 1, i),
'{} < {}'.format(A[i - 1], A[i]))
if i + 1 < len(A):
if A[i + 1] < A[i]:
raise TestFailure().with_property(
PropertyName.RESULT, A).with_mismatch_info(
i, 'A[{}] <= A[{}]'.format(i, i + 1),
'{} > {}'.format(A[i], A[i + 1]))
executor.run(functools.partial(rearrange, A))
check_answer(A)
if __name__ == '__main__':
exit(
generic_test.generic_test_main("alternating_array.py",
'alternating_array.tsv',
rearrange_wrapper))
示例8: get_height
from test_framework import generic_test
def get_height(cases, drops):
def get_height_helper(cases, drops):
if cases == 0 or drops == 0:
return 0
elif cases == 1:
return drops
if F[cases][drops] == -1:
F[cases][drops] = (get_height_helper(cases, drops - 1) +
get_height_helper(cases - 1, drops - 1) + 1)
return F[cases][drops]
F = [[-1] * (drops + 1) for i in range(cases + 1)]
return get_height_helper(cases, drops)
if __name__ == '__main__':
exit(
generic_test.generic_test_main("max_safe_height.py",
'max_safe_height.tsv', get_height))
示例9: exit
prev, result = None, []
while tree:
if prev is tree.parent:
# We came down to tree from prev.
if tree.left: # Keep going left.
next = tree.left
else:
result.append(tree.data)
# Done with left, so go right if right is not empty. Otherwise,
# go up.
next = tree.right or tree.parent
elif tree.left is prev:
# We came up to tree from its left child.
result.append(tree.data)
# Done with left, so go right if right is not empty. Otherwise, go
# up.
next = tree.right or tree.parent
else: # Done with both children, so move up.
next = tree.parent
prev, tree = tree, next
return result
if __name__ == '__main__':
exit(
generic_test.generic_test_main("tree_with_parent_inorder.py",
'tree_with_parent_inorder.tsv',
inorder_traversal))
示例10: is_linked_list_a_palindrome
from reverse_linked_list_iterative import reverse_linked_list
from test_framework import generic_test
def is_linked_list_a_palindrome(L):
# Finds the second half of L.
slow = fast = L
while fast and fast.next:
fast, slow = fast.next.next, slow.next
# Compares the first half and the reversed second half lists.
first_half_iter, second_half_iter = L, reverse_linked_list(slow)
while second_half_iter and first_half_iter:
if second_half_iter.data != first_half_iter.data:
return False
second_half_iter, first_half_iter = (second_half_iter.next,
first_half_iter.next)
return True
if __name__ == '__main__':
exit(
generic_test.generic_test_main("is_list_palindromic.py",
'is_list_palindromic.tsv',
is_linked_list_a_palindrome))
示例11: fibonacci
from test_framework import generic_test
cache = {}
def fibonacci(n):
if n <= 1:
return n
elif n not in cache:
cache[n] = fibonacci(n - 1) + fibonacci(n - 2)
return cache[n]
if __name__ == '__main__':
exit(
generic_test.generic_test_main("fibonacci.py", 'fibonacci.tsv',
fibonacci))
示例12: find_longest_subarray_less_equal_k
from test_framework import generic_test
def find_longest_subarray_less_equal_k(A, k):
# TODO - you fill in here.
return 0
if __name__ == '__main__':
exit(
generic_test.generic_test_main(
"longest_subarray_with_sum_constraint.py",
'longest_subarray_with_sum_constraint.tsv',
find_longest_subarray_less_equal_k))
示例13: reverse
begin, end = begin + 1, end - 1
reverse(0, len(A) - 1)
reverse(0, rotate_amount - 1)
reverse(rotate_amount, len(A) - 1)
# Although the following function is very natural way to rotate an array,
# its use of sublists leads to copy from original list, and therefore
# linear space complexity.
def rotate_array_naive(rotate_amount, A):
rotate_amount %= len(A)
A[:] = A[::-1] # reverse whole list
A[:rotate_amount] = A[:rotate_amount][::
-1] # reverse A[:rotate_amount] part
A[rotate_amount:] = A[rotate_amount:][::
-1] # reverse A[rotate_amount:] part
@enable_executor_hook
def rotate_array_wrapper(executor, A, rotate_amount):
a_copy = A[:]
executor.run(functools.partial(rotate_array, rotate_amount, a_copy))
return a_copy
if __name__ == '__main__':
exit(
generic_test.generic_test_main("rotate_array.py", 'rotate_array.tsv',
rotate_array_wrapper))
示例14: number_of_ways_to_top
from test_framework import generic_test
def number_of_ways_to_top(top, maximum_step):
def compute_number_of_ways_to_h(h):
if h <= 1:
return 1
if number_of_ways_to_h[h] == 0:
number_of_ways_to_h[h] = sum(
compute_number_of_ways_to_h(h - i)
for i in range(1,
min(maximum_step, h) + 1))
return number_of_ways_to_h[h]
number_of_ways_to_h = [0] * (top + 1)
return compute_number_of_ways_to_h(top)
if __name__ == '__main__':
exit(
generic_test.generic_test_main("number_of_traversals_staircase.py",
"number_of_traversals_staircase.tsv",
number_of_ways_to_top))
示例15: add_interval
def add_interval(disjoint_intervals, new_interval):
# TODO - you fill in here.
return []
@enable_executor_hook
def add_interval_wrapper(executor, disjoint_intervals, new_interval):
disjoint_intervals = [Interval(*x) for x in disjoint_intervals]
return executor.run(
functools.partial(add_interval, disjoint_intervals,
Interval(*new_interval)))
def res_printer(prop, value):
def fmt(x):
return [[e[0], e[1]] for e in x] if x else None
if prop in (PropertyName.EXPECTED, PropertyName.RESULT):
return fmt(value)
else:
return value
if __name__ == '__main__':
exit(
generic_test.generic_test_main(
"interval_add.py",
'interval_add.tsv',
add_interval_wrapper,
res_printer=res_printer))