Let's talk about testing.
- Simple recursive-descent parser
- Abstract Syntax Tree (AST) with three node types (Binary, Unary, Atom)
- #evaluate is the only public API on Calc
- parses the input
- evaluates the AST
#include <stdio.h> /* file */ | |
#include <stdlib.h> /* free */ | |
#include <math.h> /* M_PI, cos, sin */ | |
#include <limits.h> /* INT_MAX */ | |
#include "rtc/camera.h" | |
#include "rtc/shapes/shape.h" | |
#include "rtc/shapes/sphere.h" | |
#include "rtc/shapes/group.h" | |
#include "rtc/shapes/plane.h" |
Rotkohl is a traditional German dish made primarily of red cabbage. | |
My father developed a taste for it in the 1970's, when he lived in Germany | |
for two years, and I've been trying to find a good recipe for it for | |
a couple years now. Simultaneously, my dad's diet has become quite | |
restrictive: no oils, no sugar, etc, and all of the rotkohl recipes I've | |
found online include both. | |
The following recipe is one that I've adapted from several sources, and | |
it is made entirely without sugar or oil (or any of the other bells and | |
whistles that you'll find in other recipes). The most amazing part is that |
# rubocop:disable Style/SingleLineMethods | |
require 'nokogiri' | |
class Object; alias try send; end | |
class NilClass; def try(*); nil; end; end |
# Inspired by a church billboard that read: | |
# "When I becomes we, illness becomes welness" | |
# | |
# usage: | |
# > ruby change-x-for-y.rb i we | |
# illness wellness | |
# inch wench | |
# it wet | |
# ... |
Jamis' Whole Wheat Bread | |
Ingredients | |
(Pardon the mixed metric/imperial units. I'm a product of my time.) | |
450 g warm water | |
450 g milk | |
1 tbl apple cider vinegar | |
1 tbl shortening |
require 'chunky_png' | |
class Cell | |
attr_reader :row, :col | |
def initialize(row, col) | |
@row, @col = row, col | |
@links = {} | |
end |
require 'chunky_png' | |
class ToroidalGrid | |
class Cell | |
attr_reader :row, :column | |
attr_reader :north, :south | |
attr_accessor :east, :west | |
def initialize(row, column) | |
@row, @column = row, column |
RSpec::Matchers.define :not_to do | |
match { |actual| !actual } | |
end | |
RSpec.describe "Mater" do | |
specify "says `to not to' to mean false" do | |
expect(false).to not_to | |
expect(true).not_to not_to | |
end | |
end |
require 'benchmark' | |
N = 100_000 | |
SIZE = 10 | |
array_1d = Array.new(SIZE * SIZE, 0) | |
array_2d = Array.new(SIZE) { Array.new(SIZE, 0) } | |
Benchmark.bm do |bm| | |
bm.report("1d.dup") { N.times { array_1d.dup } } |