Initial commit: Pi calculation benchmark with 34 languages

- Added implementations for: bash, brainfuck, c, cpp, crystal, csharp, d, dart, elixir, erlang, fortran, go, haskell, java, javascript, julia, kotlin, objective-c, scala, typescript, lua, nim, odin, perl, php, python, r, ruby, rust, swift, zig, assembly, vimscript, wolfram
- All implementations use Machin's formula: π/4 = 4*arctan(1/5) - arctan(1/239)
- Build system with ./build.sh, test system with ./test.sh
- Performance testing with ./run_all.sh
- Comprehensive README.md explaining performance differences
- Test framework verifies correctness against known π values
This commit is contained in:
Ein Anderssono
2026-04-23 00:26:18 +02:00
commit 54d2fecee0
182 changed files with 17471 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
require "spec"
require "../print_hej"
SCRIPT_PATH = "/Users/einand/Code/test/crystal/print_hej"
def run_script(args = nil)
cmd = [SCRIPT_PATH]
cmd << args.to_s if args
output = `#{cmd.join(" ")}`
output.strip
end
describe "Pi calculation" do
it "calculates 10 decimals" do
result = run_script(10)
expected = "3.1415926535"
result.should eq(expected)
end
it "calculates 5 decimals" do
result = run_script(5)
expected = "3.14159"
result.should eq(expected)
end
it "calculates 1 decimal" do
result = run_script(1)
expected = "3.1"
result.should eq(expected)
end
it "calculates 100 decimals" do
result = run_script(100)
expected = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679"
result.should eq(expected)
end
it "calculates default 100 decimals" do
result = run_script
expected = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679"
result.should eq(expected)
end
it "calculates 10000 decimals" do
result = run_script(10000)
# Check length: "3." + 10000 digits = 10002 characters
result.size.should eq(10002)
result.starts_with?("3.14159").should be_true
end
end