Initial Course

This commit is contained in:
David Gil de Gómez Pérez
2026-08-11 17:40:36 +03:00
commit 9aed1d1d86
202 changed files with 3420 additions and 0 deletions
@@ -0,0 +1,18 @@
#include "basic_io.hpp"
#include <gtest/gtest.h>
TEST(BasicIo, JoinWords) {
EXPECT_EQ(fundamentals::join_words({"C", "Plus", "Plus"}, '-'), "C-Plus-Plus");
EXPECT_EQ(fundamentals::join_words({"solo"}, ','), "solo");
EXPECT_EQ(fundamentals::join_words({}, ','), "");
}
TEST(BasicIo, ParseIntegers) {
EXPECT_EQ(fundamentals::parse_integers("1,2,3"), (std::vector<int>{1, 2, 3}));
EXPECT_EQ(fundamentals::parse_integers("42"), (std::vector<int>{42}));
}
TEST(BasicIo, FormatScore) {
EXPECT_EQ(fundamentals::format_score("Alice", 150), "Alice scored 150 points");
}
@@ -0,0 +1,12 @@
#include "hello_world.hpp"
#include <gtest/gtest.h>
TEST(HelloWorld, GreetsByName) {
EXPECT_STREQ(fundamentals::greet("Ada"), "Hello, Ada!");
EXPECT_STREQ(fundamentals::greet("Bjarne"), "Hello, Bjarne!");
}
TEST(HelloWorld, ExitSuccessIsZero) {
EXPECT_EQ(fundamentals::program_exit_success(), 0);
}
@@ -0,0 +1,25 @@
#include "operators.hpp"
#include <gtest/gtest.h>
TEST(Operators, AbsoluteDifference) {
EXPECT_EQ(fundamentals::absolute_difference(5, 9), 4);
EXPECT_EQ(fundamentals::absolute_difference(-3, 2), 5);
}
TEST(Operators, RangeCheck) {
EXPECT_TRUE(fundamentals::is_in_range(5, 1, 10));
EXPECT_FALSE(fundamentals::is_in_range(0, 1, 10));
}
TEST(Operators, CountSetBits) {
EXPECT_EQ(fundamentals::count_set_bits(0b00001111), 4);
EXPECT_EQ(fundamentals::count_set_bits(0b10101010), 4);
}
TEST(Operators, LogicalOperations) {
EXPECT_TRUE(fundamentals::logical_and(true, true));
EXPECT_FALSE(fundamentals::logical_and(true, false));
EXPECT_TRUE(fundamentals::logical_or(false, true));
EXPECT_FALSE(fundamentals::logical_or(false, false));
}
@@ -0,0 +1,25 @@
#include "variables_and_types.hpp"
#include <gtest/gtest.h>
TEST(VariablesAndTypes, AddsIntegers) {
EXPECT_EQ(fundamentals::add_integers(2, 3), 5);
EXPECT_EQ(fundamentals::add_integers(-4, 10), 6);
}
TEST(VariablesAndTypes, MultipliesDoubles) {
EXPECT_DOUBLE_EQ(fundamentals::multiply_doubles(2.5, 4.0), 10.0);
}
TEST(VariablesAndTypes, DetectsEvenNumbers) {
EXPECT_TRUE(fundamentals::is_even(0));
EXPECT_TRUE(fundamentals::is_even(42));
EXPECT_FALSE(fundamentals::is_even(7));
}
TEST(VariablesAndTypes, DescribesTypes) {
EXPECT_EQ(fundamentals::describe_type(7), "int:7");
EXPECT_EQ(fundamentals::describe_type(3.5), "double:3.5");
EXPECT_EQ(fundamentals::describe_type(true), "bool:true");
EXPECT_EQ(fundamentals::describe_type(false), "bool:false");
}