Skip to content

Instantly share code, notes, and snippets.

View xiaoyunyang's full-sized avatar
🎯
Focusing

Xiaoyun Yang xiaoyunyang

🎯
Focusing
View GitHub Profile
function foo() {
let res = ''
let j = 10
for(let i=0; i<j; i++) {
// uncommenting ... the following line causes error
// var j = 5
res += `${j}, `
j -= 1
}
@xiaoyunyang
xiaoyunyang / closure_oo_example.js
Last active August 6, 2019 07:43
Closure Example - Object Oriented Programming
function Person(name) {
var secret = “secret!”
this.name = name
this.setName = function(newName) { this.name = newName }
this.setNameToFoo = function() { this.name = foo }
this.getSecret = function() { return secret }
}
 
var a = new Person(“Max”)
 
@xiaoyunyang
xiaoyunyang / ts-v-js.md
Created July 25, 2019 02:59
TypeScript vs JavaScript example

The example is taken from TypeScript's quick start tutorial

In JavaScript

const greeter = (person) => "hello "+person;
greeter([1,2,3]) // "hello 1,2,3"

In TypeScript

@xiaoyunyang
xiaoyunyang / testingJest.md
Created July 3, 2019 17:28
Testing With Jest

What to Test

Testing interfaces

  • Child component with the right props
import EditProfileForm from "../feedbackForm";
import Checkbox from "../checkbox";
import EmailInput from "../EmailInput";

css-grid-flowchart

The visualization component takes as inputs

  • matrix - A N x M matrix where N is the number of columns and M is the number of rows. Each element of the matrix specifies the i of building block to render.
  • workflowVisData - A datastructure that represents the graph of all the workflow steps with information on how they are connected and the distance between the node and the root of the graph (assumed to be a directed acyclic graph (DAG)).

matrix is created from workflowVisData as follows:

  1. Initialize a N x M matrix. N is longest path in the DAG (workflowStepOrder is pre-calculated for each node in the graph which provides the path of the node from the root node). M is calculated from the largest frequency of workflowStepOrder. matrix is initialized with empty.
package main
import (
"math/rand"
"os"
svg "github.com/ajstarks/svgo"
)
var (
@xiaoyunyang
xiaoyunyang / PostEditor.js
Last active August 15, 2018 19:54
Draftjs Component With A Few Plugins
import React from 'react';
import PropTypes from 'prop-types';
import {
convertToRaw,
EditorState,
RichUtils
} from 'draft-js';
import Editor from 'draft-js-plugins-editor';
import createMarkdownPlugin from 'draft-js-markdown-plugin';
import createInlineToolbarPlugin, { Separator } from 'draft-js-inline-toolbar-plugin';
@xiaoyunyang
xiaoyunyang / hasBalancedParen.js
Last active August 14, 2018 13:41
hasBalancedParen
// Parentheses Tally
const newOpenCnt = (c, openCnt) => {
if (c === '(') return openCnt + 1
if (c === ')') return openCnt - 1
return openCnt
}
function isBalanced(str, openCnt) {
// Continue or Stop?
if (typeof str !== 'string') return false
@xiaoyunyang
xiaoyunyang / matchParenTest.js
Created April 25, 2018 02:18
matchParenTest
const test = (fun testCases) => {
testCases.map(t => {
const shouldBe = t.shouldBe;
const is = fun(t.test);
const res = (shouldBe === is) ? 'passed' : 'failed';
const moreInfo = (res === 'failed') ? `testing ${t.test}. Should be ${shouldBe} but got ${is}` : ''
console.log(`${res} ${moreInfo}`);
})
}