Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (() => {
- function cellForRow(items,rowNumber){
- function getIsDetail(){
- return false //тут нужно сделать алгоритм
- }
- function getItemNumber(){
- return 0 //тут нужно сделать алгоритм
- }
- return (getIsDetail()?'detail':'item') + getItemNumber()
- }
- function testTestCases(testCases){
- function testTestCase(testCase){
- for (var i = 0; i < testCase.rows.length; i++) {
- let factResult = cellForRow(testCase.items,i)
- let row = testCase.rows[i]
- let expectedResult = (row.isDetail?'detail':'item') + row.itemNum
- if(factResult != expectedResult){
- console.log({
- factResult,
- expectedResult,
- i,
- testCase
- });
- }
- }
- }
- for(testCase of testCases){
- testTestCase(testCase)
- }
- }
- function generateTestCases() {
- const MAX_ITEMS = 3
- function calcTestCase(testCase) {
- let rows = []
- for (let item of testCase.items) {
- rows.push({
- isDetail: false
- , itemNum: item.itemNum
- })
- if (!item.collapsed) {
- rows.push({
- isDetail: true
- , itemNum: item.itemNum
- })
- }
- }
- testCase.rows = rows
- }
- function generateTestCase(m, itemCount, caseNumber) {
- let items = []
- for (var i = 0; i < itemCount; i++) {
- items.push({
- itemNum: i
- , collapsed: ((caseNumber >> i) & 1) == 0
- })
- }
- let testCase = {
- itemCount
- , caseNumber
- , items
- }
- calcTestCase(testCase)
- m.push(testCase)
- }
- function generateTestCaseForItemCount(m, itemCount) {
- let caseCount = 1 << itemCount
- for (var i = 0; i < caseCount; i++) {
- generateTestCase(m, itemCount, i)
- }
- }
- var m = [];
- for (var i = 1; i <= MAX_ITEMS; i++) {
- generateTestCaseForItemCount(m, i)
- }
- return m
- }
- let testCases = generateTestCases()
- console.log({ testCases });
- testTestCases(testCases);
- })()
Add Comment
Please, Sign In to add comment